我正在尝试在 ec2 中构建由 1 个名称节点、1 个辅助名称节点和 3 个数据节点组成的 hadoop 集群。
于是我将secondary namenode的地址写入masters文件,执行start-dfs.sh。
:~/hadoop/etc/hadoop$ cat masters
ec2-54-187-222-213.us-west-2.compute.amazonaws.com
但是,辅助名称节点并不是从主文件中写入的地址开始的。它只是从执行 stat-dfs.sh 脚本的节点开始。
:~/hadoop/etc/hadoop$ start-dfs.sh
...
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /home/ubuntu/hadoop/logs/hadoop-ubuntu-secondarynamenode-ip-172-31-26-190.out
我不明白为什么辅助名称节点从 [0.0.0.0] 开始。它应该从 ec2-54-187-222-213.us-west-2.compute.amazonaws.com 开始。 有谁知道这个原因吗?
============================================= =============
哦,我解决了这个问题。我加了
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>ec2-54-187-222-213.us-west-2.compute.amazonaws.com:50090</value>
</property>
到 hdfs-site.xml 文件,它工作了! masters 文件没用。
最佳答案
没关系,只要在hadoop配置中正确配置节点角色即可。您可以使用 dfsadmin
检查辅助名称节点的 IP 地址。如果是 172.31.26.190
则表示正常。辅助名称节点服务于 0.0.0.0
意味着它接受来自本地主机或网络中任何节点的任何传入连接。
关于Hadoop:如何在其他节点上启动辅助名称节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581425/