hadoop集群的配置参照
https://blog.csdn.net/weixin_42051109/article/details/82744993
这里补充几点
1. 需要配置Slave名字
修改$HADOOP_HOME/etc/hadoop下面的slave,里面有slave的名字,修改成slave的主机名
2. 查看log:
log文件在hadoop目录(镜像中为/usr/local/hadoop-2.7.5)下logs中,对debug非常有帮助,其中:
在Master(namenode)中有hadoop-root-namenode-Master.log和yarn-root-resourcemanager-Master.log(resource manager)
在Slave1/2(datanode)中有hadoop-root-datanode-Slave1.log和yarn-root-nodemanager-Slave1.log(node manager)
如果运行不成功,找到log中的ERROR信息再Google,一般就能找到答案
3. 关于卡job running
初次run MapReduce的时候可能对卡job running的问题感到非常棘手,因为没有报错,其实大部分问题在log中都可以找到。比如我在发现卡住的问题是两个datanode都死掉了,所以job会一直停留在run的状态。这个时候再去datanode的log里查看原因,就能找到bug了
4. 配置yarn-site.xml
这个配置文件里提供了资源分配的配置,可以参考这篇文章写的比较清楚
https://www.cnblogs.com/captainlucky/p/4610295.html
我出现了local-dirs are bad的问题,修改了
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>98.5</value>
</property>
参考
补充hadoop命令
把宿主机中的文件复制到docker中
docker cp /home/boxian/hadoop/WordCount.jar 63daxxxx:/home/BigData/WordCount.jar
把docker中的文件复制到hdfs中,这里用到put
hadoop fs -put /home/BigData/WordCount/input/words.txt /input
把hdfs中的文件复制到docker中,用到get
hadoop fs -get /output/part-r-00000 /home/BigData/WordCount/output/results
执行MapReduce的jar文件
hadoop jar WordCount.jar WordCount /input /output
(hadoop jar jarfile.jar Driver [args])