行业报告 AI展会 数据标注 标注供求
数据标注数据集
主页 > 数据挖掘 正文

分享:32个Hadoop问题及解决方案

1、问题:

hadoop安装完以后,在执行命令时,经常会提示一下警告:

  1. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
  2. using builtin-java classes where applicable

原因:

这个跟系统位数有关系,我们平常使用的是Centos 6.5 64位操作系统。

解决办法:

(1)如果你是hadoop2.6的可以下载下面这个:

http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar

(2)下载完以后,解压到hadoop的native目录下,覆盖原有文件即可。操作如下:


  1. tar -x hadoop-native-64-2.4.0.tar -C hadoop/lib/native/

2、hadoop HA namenode 无法启动错误

问题:


  1. 2014-12-15 14:27:55,224 INFO org.apache.hadoop.hdfs.server.namenode.FSImage: No edit log streams selected.
  2. 2014-12-15 14:27:55,300 ERROR org.apache.hadoop.hdfs.server.namenode.FSImage: Failed to load image from FSImageFile(file=/usr/hadoop/tmp/dfs/name/current/fsimage_0000000000000030732, cpktTxId=0000000000000030732)
  3. java.io.IOException: Premature EOF from inputStream
  4. at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:194)
  5. at org.apache.hadoop.hdfs.server.namenode.FSImageFormat$LoaderDelegator.load(FSImageFormat.java:221)
  6. at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:913)
  7. at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:899)
  8. at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImageFile(FSImage.java:722)
  9. at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:660)
  10. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:279)
  11. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:955)
  12. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:700)
  13. at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:529)
  14. at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:585)
  15. at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:751)
  16. at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:735)
  17. at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1407)
  18. at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1473)
  19. 2014-12-15 14:27:55,438 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
  20. java.io.IOException: Failed to load an FSImage file!
  21. at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:671)
  22. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:279)
  23. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:955)
  24. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:700)
  25. at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:529)
  26. at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:585)
  27. at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:751)
  28. at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:735)
  29. at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1407)
  30. at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1473)
  31. 2014-12-15 14:27:55,440 INFO org.mortbay.log: Stopped HttpServer2$SelectChannelConnectorWithSafeStartup@HM0:50070
  32. 2014-12-15 14:27:55,540 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping NameNode metrics system...
  33. 2014-12-15 14:27:55,541 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system stopped.
  34. 2014-12-15 14:27:55,541 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system shutdown complete.
  35. 2014-12-15 14:27:55,541 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
  36. java.io.IOException: Failed to load an FSImage file!
  37. at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:671)
  38. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:279)
  39. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:955)
  40. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:700)
  41. at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:529)
  42. at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:585)
  43. at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:751)
  44. at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:735)
  45. at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1407)
  46. at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1473)

原因:

查看文件大小 fsimage_0000000000000030732 大小为0,而在另一台服务器长度不为0,是这个fsimage文件的问题

解决:

可以从另一台服务器上拷贝该文件,或者删除这个文件及对应的md5文件即可。

建议从其他机器拷贝fsimage文件

3、设置conbinner注意事项

问题:

在使用combiner的时候,出现IntWritable is not Text,或者其他的类型不匹配问题

原因:

这是设置combiner的时候,map输出的keyvalue类型和combiner输出的keyvalue类型不一致导致的。

解决:

如果设置combiner,必须保证一点,map输出的keyvalue类型和combiner输出的keyvalue类型必须一致!!!

解决问题

4、error:server IPC version 9 cannot communicate with client version 4

问题:

error:server IPC version 9 cannot communicate with client version 4

原因:

(1)如果是在使用插件操作hdfs时报错,是因为,eclipse插件和eclipse的版本不匹配

(2)如果是在执行mapreduce时报错:是因为jar包不匹配

解决:

重新编译hadoop插件,使用自己的hadoop和eclipse版本

5、Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

问题:

Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

原因:

在使用hadoop插件的时候,会在本地找winutils.exe这个文件,而这个文件是hadoop安装包下的文件,必须配置eclipse插件的hadoop的windows本地路径才行。

解决:

配置windows的hadoop环境变量,并且重启机器,让环境变量生效

6、问题:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

原因:

程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。

解决:

修改2个文件。

/etc/security/limits.conf


  1. vi /etc/security/limits.conf

加上:


  1. * soft nofile 102400
  2. * hard nofile 409600


  1. $cd /etc/pam.d/
  2. $sudo vi login

添加session required /lib/security/pam_limits.so

7、问题:Too many fetch-failures

原因:

出现这个问题主要是结点间的连通不够全面。

解决:

1) 检查/etc/hosts

要求本机ip对应服务器名

要求要包含所有的服务器ip+服务器名

2) 检查 .ssh/authorized_keys

要求包含所有服务器(包括其自身)的public key

8、问题:处理速度特别的慢 出现map很快 但是reduce很慢 而且反复出现 reduce=0%

解决:

修改 conf/hadoop-env.sh 中的export HADOOP_HEAPSIZE=4000

9、问题:能够启动datanode,但无法访问,也无法结束的错误

原因:

可能原因很多,需要查看日志定位,可能的原因是namespaceId不一致

解决:

(1)删除namenode的本地文件夹:${hadoop}/namedir/*

(2)删除datanode的本地文件夹:${hadoop}/datadir/*

(3)重新格式化

(4)注意:删除是个很危险的动作,不能确认的情况下不能删除!!做好删除的文件等通通备份!!

10、问题:java.io.IOException: Could not obtain block: blk_194219614024901469_1100 file=/user/hive/warehouse/src_20090724_log/src_20090724_log

原因:

出现这种情况大多是结点断了,没有连接上。

解决:

检查datanode是否有宕机情况,恢复

微信公众号

声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
SEM推广服务

Copyright©2005-2028 Sykv.com 可思数据 版权所有    京ICP备14056871号

关于我们   免责声明   广告合作   版权声明   联系我们   原创投稿   网站地图  

可思数据 数据标注

扫码入群
扫码关注

微信公众号

返回顶部