hadoop常见异常

###一、Shell$ExitCodeException 现象:运行hadoop job时出现以下异常:java

Exception from container-launch: org.apache.hadoop.util.Shell$ExitCode
Exception: 
Container exited with a non-zero exit code 1

缘由及解决办法:缘由未知。重启可恢复正常 ###二、Safe mode 现象:分配map reduce任务时产生:node

org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode

说明Hadoop的NameNode处在安全模式下。apache

经查阅: 安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。安全

在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的状况下,文件系统中的内容不容许修改也不容许删除,直到安全模式结束。网络

用户能够经过dfsadmin -safemode value 来操做安全模式,参数value的说明以下: enter - 进入安全模式 leave - 强制NameNode离开安全模式 get - 返回安全模式是否开启的信息 wait - 等待,一直到安全模式结束。socket

解决方案: hadoop dfsadmin -safemode leave (离开安全模式)分布式

###三、超时错误 SocketTimeoutException 现象:oop

java.net.SocketTimeoutException: 66000 millis timeout while waiting for channel to be ready for read. c

产生缘由: 1.master和slave时钟不一样步 因为hadoop集群中的心跳和反馈机制,因此在配置的时候咱们会进行时钟同步的操做,当某种缘由形成cmos断电后,时钟会错乱,这个时间会产生此异常。 解决方案: 手动设置timezone 同步时间 参考命令 ntpdate date等命令.net

2.  因为网络卡顿引发   
   解决方案:设置hadoop集群的修改超时设置

在配置文件中,加入超时设置日志

<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>3000000</value>
</property>

<property>
<name>dfs.socket.timeout</name>
<value>3000000</value>
</property>

###四、Permission denied: user=li, access=WRITE, inode="":zkpk:supergroup:rwxr-xr-x 缘由为用户权限不足,不能访写HDFS中的文件。 解决方案1: 关闭hadoop权限,在hdfs-site.xml文件中添加

<property>    
<name>dfs.permissions</name>    
<value>false</value>    
</property>

解决方案2: 设置权限

###五、could only be replicated to 0 nodes, instead of 1解决办法

现象:

hadoop fs -put /home/hadoop/file/* input
java.io.IOException: File /user/hadoop/input/file1.txt could only be replicated to 0 nodes, instead of 1

产生缘由: 一、系统或hdfs是否有足够空间(本人就是由于硬盘空间不足致使异常发生) 二、datanode数是否正常 三、是否在safemode 四、防火墙是否关闭 五、关闭hadoop、格式化、重启hadoop

若是put时出现java.io.IOException: Not a file: hdfs://localhost:9000/user/icymary/input/test-in 解决办法是hadoop dfs -rmr input hadoop dfs -put /home/test-in input 缘由是,当执行了屡次put以后,就会在分布式文件系统中生成子目录,删除从新put便可。 若是在 hadoop jar hadoop-0.16.0-examples.jar wordcount input output该过程当中出现"can only be replicated to node 0, instead of 1",解决办法是,给磁盘释放更多的空间 若是 bin/hadoop jar hadoop-0.16.0-examples.jar wordcount input output过程当中 INFO mapred.JobClient: map 0% reduce 0%

且一直卡住,在log日志中也没有出现异样,那么解决办法是,把/etc/hosts里面多余的机器名删掉,便可。

相关文章
相关标签/搜索