遇到问题以后先查看日志,以下是常见的错误情况及解决方法,希望对大家有所帮
助。
1、启动 hadoop 时没有 NameNode 的可能原因:
(1) NameNode 没有格式化
(2) 环境变量配置错误
(3) Ip 和 hostname 绑定失败
2、地址占用
报错:org.apache.hadoop.hdfs.server.namenode.NameNode: Address already in
use
解决方法:查找被占用的端口号对应的 PID:netstat–tunl
Pkill -9 PID
实在不行就 killall-9java
3、safeMode
报错:
bin/hadoop fs -put ./input input
put: org.apache.hadoop.hdfs.server.namenode.SafeModeException:
Cannot create directory /user/root/input. Name node is in safe mode.
hadoop dfsadmin -safemode leave
解决方法:
NameNode 在启动的时候首先进入安全模式,如果 dataNode 丢失的 block 达到一
定的比例(1-dfs.safemode.threshold.pct),则系统一直处于安全模式状态,即只
读状态。
dfs.safemode.threshold.pct(缺省值 0.999f)表示 HDFS 启动的时候,如果
DataNode 上报的 block 个数达到了元数据记录的 block 个数的 0999 倍才可以离开
安全模式,否则一直是这种只读模式。如果设置为 1,则 HDFS 一直处于安全模式。
下面这行摘录自 NameNode 启动时的日志(block 上报比例 1 达到了阈值 0.999)
The ratio of reported blocks 1.0000 has reached the threshold 0.9990. Safe mode
will be turned off automatically in 14seconds.
有两种方法离开这种安全模式:
(1) 修改 dfs.safeMode.threshold.pct 为一个比较小的值,缺省是 0.999;
(2)