我配置并安装了hadoop1.2.1单节点。我将namenode和jobtracker地址与端口配置为“hdfs://localhost:9000“和”localhost:9001“分别。
启动集群后(start all.sh)。我跑了 netstat -nltp
在此之后,列出了hadoop端口。
50030 - jobtracker Web UI
50060 - tasktracker Web UI
50070 - namenode Web UI
50075 - datanode Web UI
(http://localhost:50075/browseDirectory.jsp?dir=%2F)
50090 - secondary namenode Web UI
54310 - namenode (as configured in XML)
54311 - jobtracker (as configured in XML)
50010 - datanode (for data transfer)
50020 - datanode (for block metadata operations & recovery)
33447 - tasktracker ( not configured. Any unused local port is chosen by hadoop itself)
但是,其他几个端口也被占用了,这表明这是java进程(我停止了hadoop并确认这些端口只属于hadoop集群)。
48212 - ???
41888 - ???
47448 - ???
52544 - ???
这些不是固定端口。它们是动态选择的。因为,当我重新启动集群(stop-all.sh和start-all.sh)时,其他端口与第一次相同,只是这些端口发生了变化
48945 - tasktracker (This is fine, as explained before)
其他端口呢?这些端口是用来做什么的?
44117 - ???
59446 - ???
52965 - ???
56583 - ???
3条答案
按热度按时间axkjgtzd1#
谢谢你提出这个有趣的问题,维韦克。
这让我很感兴趣,我为ApacheHadoop1.2.1的主程序和从程序的启动部分挖掘了一些代码;但是除了标准的文档化绑定之外,没有其他的端口绑定。
我做了两个实验,研究如何启动namenode,并使用
netstat -nltpa
1) hadoop--配置../conf namenode-常规2) 直接调用namenode主类
3) 添加default core-default.xml,然后启动namenode
我的观察是针对#2和#3,只有标准端口出现,所以我查看了java选项,这就是宾果。
在hadoop-env.sh中注解下面的所有内容,然后启动hadoop,您将只看到标准端口,因此您看到的其他端口都是jmx bin端口
希望这有帮助。
mzsu5hc02#
这将显示所有活动的tcp、udp、raw或unix套接字连接。hadoophdfs、hbase、zookeeper在中间创建了许多套接字,并用于读/写或消息传递。
在org.apache.hadoop.hdfs.dfsclient中创建的rpc读取器线程数,用于从连接读取/写入数据。hadoop.rpc.socket.factory.class.clientprotocol将提供有关如何创建套接字/工厂的详细信息。
cgyqldqp3#
在
linux
系统中,已知服务通常列在/etc/services
文件。这就是网络实用程序(例如。netstat
)get是端口号的友好名称(即80/http)。某些包可能会更新
/etc/services
. 如果hadoop
有问题的端口的动态范围会发生变化,因此没有理由执行此更新。参考文献
http://www.cyberciti.biz/faq/find-out-which-service-listening-specific-port/
http://www.tldp.org/ldp/nag2/x-087-2-appl.services.html
希望这有帮助。