遇到的问题:
我搭建的是完全分布式系统,克隆了5台虚拟机,1台启动namenode节点,3台启动datanode节点,1台启动secondarynamenode节点,启动start-dfs.sh和start-yarn.sh脚本时,datanode节点日志报错,错误信息:2017-06-03 19:05:39,452 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: s100/192.168.23.128:8020. Already tried 6 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS),大概意思就是无法访问s100名称节点的8020端口。折腾了一下午终于找到原因了,细节就不说了。
解决方案:
首先,我的五台虚拟机ping IP都是可以互通的,就是端口不可以访问,hadoop的50070端口都只是在本虚拟机内可以访问,在宿主机上无法访问。通过查资料+分析,最终断定是linux防火墙的原因,把5台虚拟机的防火墙都关闭了,一切都正常了。
centOS7关闭防火墙:
systemctl stop firewall.service // 停止防火墙
systemctl disable firewall.service //禁止防火墙开机自动启
防火墙关闭后执行命令:
hadoop --config /usr/local/soft/hadoop/etc/hadoop_cluster fs -put hello.txt /user/liuym/data/ //上传文件到hadoop文件系统中
指令执行成功。