我想知道具体的通讯协议 port number
在hadoop中由namenode和datanode使用。
如果我在namenode中编写以下命令,
hdfs dfsadmin -report
它将显示活动节点(namenode和datanode)的详细信息,有多少datanode等。我的问题是namenode和datanode如何通信?通过 which port
? 使用上述命令,我实际上只得到1个datanode,而在我的集群中,有8个datanode。所以,我不确定是否有 port blocking of networking
是这个引起的!!我的防火墙在namenode和所有datanodes中被禁用。我已经查过了 sudo ufw status
返回的命令 inactive
.
从hadoop官方页面(链接),我发现:
通信协议
所有hdfs通信协议都是在tcp/ip协议之上分层的。客户机建立到namenode机器上可配置tcp端口的连接。它与namenode讨论clientprotocol。datanode使用datanode协议与namenode通信。远程过程调用(rpc)抽象同时 Package 了客户机协议和数据节点协议。根据设计,namenode从不启动任何rpc。相反,它只响应datanodes或客户端发出的rpc请求。
我正在使用 hadoop 3.1.1
在 Ubuntu 16.04
非常感谢您的帮助。谢谢。
1条答案
按热度按时间avkwfej41#
这些都是在中配置的
hdfs-site.xml
.例如,默认情况下,
dfs.datanode.address=0.0.0.0:9866
如果你搜索port
或者address
,然后你就可以找到你想要的东西了https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml如果该命令或namenodeui没有显示datanodes,那么ssh到各个节点,检查
jps
查看进程是否正在运行,并记录文件以查找进程是否未运行。