1

我想知道port numberhadoop中Namenode和Datanode具体使用的通信协议。

说,如果我在 Namenode 中编写以下命令,

hdfs dfsadmin -report

它将显示活动节点(名称节点和数据节点)的详细信息,有多少数据节点等。我的问题是名称节点和数据节点如何通信?通过which port?实际上,我使用上述命令只获得了 1 个数据节点,而在我的集群中,有 8 个数据节点。所以,我不确定是否有任何port blocking of networking原因造成的!我的防火墙在名称节点和所有数据节点中被禁用。我已经通过sudo ufw status返回的命令检查了这一点inactive

从 hadoop 官方页面(链接),我发现了这个:

通信协议

所有 HDFS 通信协议都建立在 TCP/IP 协议之上。客户端与 NameNode 机器上的可配置 TCP 端口建立连接。它与 NameNode 对话 ClientProtocol。DataNode 使用 DataNode 协议与 NameNode 对话。远程过程调用 (RPC) 抽象包装了客户端协议和数据节点协议。按照设计,NameNode 从不启动任何 RPC。相反,它只响应 DataNodes 或客户端发出的 RPC 请求。

我正在hadoop 3.1.1使用Ubuntu 16.04

非常感谢任何帮助。谢谢。

4

1 回答 1

2

这些都配置在hdfs-site.xml.

例如,默认情况下,dfs.datanode.address=0.0.0.0:9866

如果您搜索portor address,那么您通常可以找到您要查找的内容https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

如果该命令或 NameNode UI 未显示数据节点,则 SSH 到各个节点,检查jps进程是否正在运行,并记录文件以查找进程是否未运行。

于 2019-07-16T19:29:22.600 回答