Hadoop问题与解决

Hadoop问题与解决

标签: Hadoop FAQ


FAQ. 问题与解决1

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/hadoop/tmp/dfs/data: namenode namespaceID = 39895076; datanode namespaceID = 1030326122

原因:namenode 被重新格式化,datanode数据版本与namenode不一致。
解决
1. 删除datanode所有文件;
2. 修改datanode dfs/data/current/VERSION与namenode相同。


FAQ. 问题与解决2

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeRegistration(192.168.2.19:50010, storageID=DS-1082898260-202.106.199.39-50010-1348575582644, infoPort=50075, ipcPort=50020):DataXceiveServer: Exiting due to:java.lang.OutOfMemoryError: Java heap space (注:上面这个ERROR并不一定全会发生,有时会出现无ERROR出现datanode就关闭的情况) ERROR org.apache.hadoop.mapred.TaskTracker: Caught exception: java.io.IOException: Call to hadoopmaster/192.168.1.43:9001 failed on local exception: java.io.IOException: Connection reset by peer

原因:常规数据交换量过大,导致通信故障datanode无法连接namenode
任务数据交换量过大,导致tasktracker与jobtracker通信故障.
解决
1. 增大带宽;
2. 配置机架感知脚本topology.script.file.name;
3. 关闭均衡器。


FAQ. 问题与解决3

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskError Exception: Invalid value for volsFailed : 3 , Volumes tolerated : 0

原因:磁盘损坏。
解决:关机换硬盘,2台以内服务器损坏无需关心数据丢失,hadoop存储策略以服务器为单位,不以硬盘为单位。


FAQ. 问题与解决4

org.apache.hadoop.hdfs.server.datanode.DataNode: dnRegistration = DatanodeRegistration(bt-199-039.bta.net.cn:50010, storageID=, infoPort=50075, ipcPort=50020)

原因:主机名转换错误,datanode无法启动。
解决:设置hostname和/etc/sysconfig/network,然后重启datanode。


FAQ. 问题与解决5

Hive查询FileNotFound Exception

原因:文件不存在错误。
故障一:文件的确不存在。
故障二:权限问题导致数据没有正确insert写入到hive读取路径.
解决:dfs.permissions = false或设置hive读取路径正确的可写权限。


FAQ. 问题与解决6

INFO org.apache.hadoop.hdfs.server.datanode.DataNode: writeBlock blk_-8336485569098955809_2093928 received exception java.io.IOException: Permission denied

原因:之前用错误账户启动hadoop,dfs存储所使用的本地文件夹被变更用户和组,导致文件夹不可写。datanode无法启动。
解决:切换高权限用户,将dfs存储的本地文件夹chown -R成hadoop本身用户和组,重启datanode。


FAQ. 问题与解决7

问题:磁盘满导致的task tracker无法启动。
ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because ENOENT: No such file or directory at org.apache.hadoop.io.nativeio.NativeIO.chmod(Native Method) at org.apache.hadoop.fs.FileUtil.execSetPermission(FileUtil.java:699) at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:654) at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509) at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344) at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189) at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:723) at org.apache.hadoop.mapred.TaskTracker.(TaskTracker.java:1459) at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3742)

解决:增加磁盘空间或清理磁盘。

你可能感兴趣的:(Hadoop问题与解决)