我为Hadoop正确配置了两个节点集群环境,并且还为数据节点配置了Master。
所以目前我有两个数据节点,没有任何问题,我可以启动Master中的所有服务。
从属数据节点也能够从主节点停止启动。
但是当我使用url http://<IP>:50070/dfshealth.jsp
检查运行状况时,Live节点计数始终只显示一个而不是两个。
主流程:
~/hadoop-1.2.0$ jps
9112 TaskTracker
8805 SecondaryNameNode
9182 Jps
8579 DataNode
8887 JobTracker
8358 NameNode
奴隶程序:
~/hadoop-1.2.0$ jps
18130 DataNode
18380 Jps
18319 TaskTracker
请帮助我知道我做错了什么。
答案 0 :(得分:1)
第二个DataNode正在运行但未连接到NameNode。您可能会重新格式化NameNode,现在NameNode和DataNode中的版本号不同。
修复方法是手动删除DataNode保存其数据的目录(dfs.datanode.data.dir),然后重新格式化NameNode。一个不那么极端的是手动编辑版本,但出于学习目的,你可以只扫描整个目录。
答案 1 :(得分:0)
最后我得到了解决方案,
在@charles输入后,我检查了Datanode日志并得到了以下错误。
org.apache.hadoop.ipc.Client: Retrying connect to server: masternode/192.168.157.132:8020. Already tried 9 time(s);
我能够执行ssh但是从datanode到8020端口的主机有telnet问题。
>telnet 192.168.157.132 8020
Trying 192.168.157.132...
telnet: connect to address 192.168.157.132: No route to host
我刚刚在iptables中添加了允许端口8020,使用下面的命令并重新启动了hadoop服务,一切正常。
iptables -I INPUT 5 -p tcp --dport 8020 -j ACCEPT
这只是防火墙的问题。 感谢大家的宝贵意见。