我在运行centos6.4的三台虚拟机集群上尝试了hadoop2。虽然hadoop2的配置文件core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml让我很痛苦,但我还是成功地启动了hadoop集群。我想更改hadoop2使用的所有默认端口。配置文件的官方文档定义了这么多端口号。因此,我认为最好确定hadoop运行时使用的端口,然后更改所有端口。那么,如何找出运行centos的集群中hadoop使用的所有默认端口呢?谢谢。
zaqlnxep1#
您可以通过使用netstat命令,结合一个小bash-one命令行,找出特定进程已打开的端口。目前我的机器上还没有hadoop,因此下面是一个示例,以了解sshd在哪个端口上运行(应该是22!):您需要知道hadoop进程的进程id(tt、jt、nn、dn等),这可以通过执行另一个oneliner来找到,因此对于我的sshd示例:
# > sudo ps axww | grep sshd 1065 ? Ss 0:00 /usr/sbin/sshd -D
您可以在grepforhadoop中替换sshd,它将捕获在该节点上运行的大多数进程。现在,我们可以使用另一个一行程序来找出sshd为侦听打开了哪些端口(进程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进程,都需要这样做。像数据节点和任务跟踪器端口这样的东西应该在不同的计算机之间匹配,但是只有一个节点可以运行名称节点/作业跟踪器进程。
1条答案
按热度按时间zaqlnxep1#
您可以通过使用netstat命令,结合一个小bash-one命令行,找出特定进程已打开的端口。目前我的机器上还没有hadoop,因此下面是一个示例,以了解sshd在哪个端口上运行(应该是22!):
您需要知道hadoop进程的进程id(tt、jt、nn、dn等),这可以通过执行另一个oneliner来找到,因此对于我的sshd示例:
您可以在grepforhadoop中替换sshd,它将捕获在该节点上运行的大多数进程。
现在,我们可以使用另一个一行程序来找出sshd为侦听打开了哪些端口(进程id 1065):
对于所有节点上的所有hadoop进程,都需要这样做。像数据节点和任务跟踪器端口这样的东西应该在不同的计算机之间匹配,但是只有一个节点可以运行名称节点/作业跟踪器进程。