###一、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里面多余的机器名删掉,便可。