文章结束给大家来个程序员笑话:[M]
涌现问题后以先查看志日,以下是见常的错误情况
1 址地占用
org.apache.hadoop.hdfs.server.namenode.NameNode: Address already in use
找查被占用的端口号对应的PID : netstat -tunl
pkill -9 PID在实行不就killall -9 java
2 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个数的0.999倍才可以分开安全式模,否则直一是这类只读式模。如果设为1则HDFS永远是处于SafeMode。
面下这行摘录自NameNode启动时的志日(block上报比例1到达了阀值0.9990)
The ratio of reported blocks 1.0000 has reached the threshold 0.9990. Safe mode will be turned off automatically in 18 seconds.
有两个方法分开这类安全式模
(1)修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。
(2)hadoop dfsadmin -safemode leave命令强制分开
用户可以通过dfsadmin -safemode value 来作操安全式模,数参value的说明如下:
enter - 进入安全式模
leave - 强制NameNode分开安全式模
get - 返回安全式模是不是开启的信息
wait - 待等,直一到安全式模结束。
3 could only be replicated to 0 nodes, instead of 1
hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop
.ipc.RemoteException: java.io.IOException: ... could only be replicated to 0 nodes, instead of 1 ...
可能涌现的景象:用jps查看进程都畸形。但是用web查看的话,live nodes为0. 这说明datanode没有畸形启动,但是datanode进程又启动了。
解决方法:
(1)防火墙原因
(2)磁盘空间原因
df –ah #查看磁盘空间
如果是磁盘空间够不,则调整磁盘空间(像我就是磁盘空间够不)
如果上述方法行不,用以下方法( 只不过会丧失掉已有数据,请郑重用使 )
- 先行运stop-all.sh
- 格式化namdenode,不过在这之前要先删除原录目,即core-site.xml下配置的<name>hadoop.tmp.dir</name>所向指的录目,删除后切纪要从新建立配置的空录目,然后行运hadoop namenode -format。为了便方删除,我写了一个sh脚原来一统行执(这里连log志日文件一并删除了):
- 行运start-all.sh
文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。