我在运行CentOS 6.4的三台虚拟机集群上试用了Hadoop 2。
我成功地启动了hadoop集群,尽管Hadoop 2的配置文件(如:core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml )非常折磨我。
我想更改Hadoop 2使用的所有默认端口。配置文件的正式文档定义了这么多端口号。因此,我认为最好确定Hadoop在运行时使用哪些端口,然后更改所有端口。那么,如何找到运行CentOS的集群中Hadoop使用的所有默认端口呢?谢谢。
发布于 2013-08-14 11:15:21
通过使用netstat命令,结合一个小型bash衬垫,您可以找到特定进程打开的端口。我目前还没有hadoop在我的机器上运行,所以这里有一个例子来了解sshd在哪个端口上运行(应该是22!):
您需要知道hadoop进程的进程id (TT、JT、NN、DN等),可以通过执行另一个oneliner来找到它,因此对于我的sshd示例:
#> sudo ps axww | grep sshd
1065 ? Ss 0:00 /usr/sbin/sshd -D您可以将grep中的sshd替换为hadoop,它将捕获该节点上运行的大多数进程。
现在,我们可以使用另一个班轮来了解sshd为LISTENing打开了哪些端口(进程id 1065):
#> sudo netstat -alpn | grep 1065 | grep LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1065/sshd
tcp6 0 0 :::22 :::* LISTEN 1065/sshd 您需要在所有节点上对所有hadoop进程执行此操作。数据节点和任务跟踪器端口应该跨机器匹配,但只有一个节点可能有一个名称节点/作业跟踪器进程正在运行。
https://stackoverflow.com/questions/18223924
复制相似问题