Docker Hadoop 配置常见错误及解决办法
问题1:wordcount运行卡住,hadoop 任务运行到running job就卡住了 INFO mapreduce.Job: Running job: job_....
解决如下:
1. 修改mapred-site.xml配置,配置文件在Hadoop安装目录下,etc/hadoop/mapred-site.xml
将以下配置
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
改成
<property>
<name>mapreduce.job.tracker</name>
<value>hdfs://master:8001</value>
<final>true</final>
</property>
master是hadoop主机master的地址,也可以是IP,例如:192.168.1.110
2. 修改完以上配置,重启下服务试试看
stop-all.sh start-all.sh
3. 如果还是不行,则修改yarn-site.xml,新增如下配置
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
4. 解决完成
问题2:INFO ipc.Client: Retrying connect to server: h01/172.18.0.2:8032. Already tried 0 time(s); retry policy is RetryUpToMax
解决如下:
1. 重启yarn
start-yarn.sh
2. 输入jps查看是否启动完成
3. 解决完成
问题3:org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode
解决如下:
hadoop dfsadmin -safemode leave
用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束
问题4:hadoop 启动错误 org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage java.io.IOException: NameNode is not formatted.
解决如下:
1.关闭所有的节点:
stop-all.sh
2.namenode格式化
hadoop namenode -format
3.开启所有的节点:
start-all.sh
4. 解决完成
问题5:hadoop集群配置datanode无法启动的原因
解决如下:
1. 停止服务
stop-all.sh
2. 找到hadoop安装目录下配置的tmp,/etc/hadoop/core-site.xml,查看tmp目录
3. 删除/data/hadoop/tmp目录下的文件
4. 找到hadoop安装目录下配置的name、data目录,/etc/hadoop/hdfs-site.xml ,查看目录
5. 删除/data/hadoop/hdfs/data/和/data/hadoop/hdfs/name目录下的文件
6. 启动服务
start-all.sh
问题6:master: ssh: connect to host master port 22: Connection timed out
解决如下:
1. 安装ssh
2. 启动服务
service ssh start
问题7:启动start-all.sh,发现namenode没启动,查看hadoop-root-namenode-hd_master.log,发现ERROR如下
原因是:Hostname不能包含-
或_
。且不要重复绑定
解决如下:
1. 重新配置打包镜像,将hosts的下划线"_"去掉,即,“hd_master”改“hdmaster”
问题8:org.apache.hadoop.http.HttpRequestLog: Http request log for http.requests.resourcemanager is not defined
解决如下:
1. 检查yarn-site.xml配置文件的yarn.resourcemanager.hostname配置是否正确。如
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdmaster</value>
</property>
2. 检查容器启动的-h 是否正确。如
docker run -it --network hadoop_network --name hdmaster -h hd_master -p 9871:9870 -p 8089:8088 registry.cn-han...... /bin/bash
这里的-h参数错了,应该改成hdmaster,即
docker run -it --network hadoop_network --name hdmaster -h hd_master -p 9871:9870 -p 8089:8088 registry.cn-hangzhou.aliyuncs.com/will-web/ubuntu_hadoop_signle:2.6 /bin/bash