我在运行CentOS 6.4的三台虚拟机的集群上尝试了Hadoop 2。
我成功启动了hadoop集群,但Hadoop 2的配置文件如:core-site.xml,hdfs-site.xml,mapred-site.xml和yarn-site.xml折磨了我很多。< / p>
我想更改Hadoop 2使用的所有默认端口。配置文件的官方文档中定义了很多端口号。因此,我认为最好确定Hadoop在运行时使用哪些端口,然后更改所有端口。那么我怎样才能找到运行CentOS的集群中Hadoop使用的所有默认端口?感谢。
答案 0 :(得分:2)
您可以使用netstat命令找到特定进程已打开的端口,并结合一个小的bash one liner。目前我的机器上没有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中替换hadoop中的sshd,它将捕获在该节点上运行的大多数进程。
现在我们可以使用另一个内联来找出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进程执行此操作。数据节点和任务跟踪器端口之类的东西应该跨机器匹配,但只有一个节点可以运行名称节点/作业跟踪器进程。