我想了解hadoop中Namenode和Datanode专门使用的通信协议port number
。
说,如果我在Namenode中编写以下命令,
hdfs dfsadmin -report
它将显示活动节点(namenode和datanode)的详细信息,其中有几个datanode,等等。我的问题是namenode和datanode如何通信?通过which port
吗?使用以上命令,我实际上只得到1个数据节点,而在我的集群中,有8个数据节点。因此,我不确定是否引起任何port blocking of networking
!我的防火墙在名称节点和所有数据节点中被禁用。我已通过sudo ufw status
命令检查了此情况,该命令返回了inactive
。
在hadoop官方页面(link)中,我发现了这一点:
通信协议
所有HDFS通信协议都位于TCP / IP之上 协议。客户端建立与可配置TCP端口的连接 在NameNode机器上。它将ClientProtocol与 NameNode。 DataNode使用DataNode与NameNode对话 协议。远程过程调用(RPC)抽象包装了 客户端协议和DataNode协议。通过设计,NameNode 从不启动任何RPC。相反,它仅响应RPC请求 由DataNode或客户端发布。
我正在hadoop 3.1.1
中使用Ubuntu 16.04
我们非常感谢您的帮助。谢谢。
答案 0 :(得分:1)
这些都在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
如果该命令或NameNode UI未显示数据节点,则SSH到各个节点,检查jps
以查看进程是否正在运行,并记录文件以查找进程是否未运行。