设为首页 收藏本站
查看: 1019|回复: 0

[经验分享] 搭建Hadoop所遇过的坑

[复制链接]

尚未签到

发表于 2017-12-17 17:08:59 | 显示全部楼层 |阅读模式
问题1:
  报错信息如下:
  

  Container exited with a non-zero exit code 143  Killed by external signal  

解决方案:
  分配的资源不够,加大内存或者调整代码,尽量避免类似JsonObject这样的大对象过度消耗内存,或者Include below properties in yarn-site.xml and restart VM
  

<property>  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
  <description>Whether virtual memory limits will be enforced for containers</description>
  
</property>
  
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>4</value>
  <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
  
</property>
  

  


问题2:
  报错信息如下:
  

HDFS进入安全模式: Name node is in safemode mode  

解决方案:
  

退出安全模式, 执行命令:   hadoop dfsadmin -safemode leave   

  


问题3:
  报错信息如下:
  

INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-Java>  

解决方案:
  检查native库的版本信息,32bit的版本和64bit的版本在不匹配的机器上会加载失败,检查的命令是file <native-so-file>
  
native库依赖的glibc的版本问题。如果在高版本gcc(glibc)的机器上编译的native库,放到低版本的机器上使用,会由于glibc版本不一致导致该错误。
  Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。
  
如果加载成功,输出为:
  

DEBUG util.NativeCodeLoader - Trying to load the custom-built native-hadoop library...  
INFO util.NativeCodeLoader - Loaded the native-hadoop library
  

  如果加载失败,则报错为
  

Unable to load native-hadoop library for your platform...  

  相关的配置:


  •   在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:(Hadoop默认的配置为启用本地库)
      

    <property>  
    <name>hadoop.native.lib</name>  
      
    <value>true</value>  
      
    <description>Should native hadoop libraries, if present, be used.</description>  
      
    </property>

  •   另外,可以在环境变量中设置使用本地库的位置:
      

    export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs
  


问题4:
  报错信息如下:
  

    maps to localhost, but this does not map back  

解决方案:
  

原因:  因为DNS服务器把 192.168.x.x 的地址都反向解析成 localhost ,而DNS服务器不是自己的,不能改。  
办法:  编辑ssh 客户端的 /etc/hosts 文件,把出问题的IP 地址和主机名加进去,就不会报这样的错了。
  

  


问题5:
  报错信息如下:
  

java.io.IOException: Incompatible clusterIDsin /home/wangming/hadoop-data/dfs/data  

解决方案:
  

格式化HDFS前, 先将原来的hadoop目录删除  

  


问题6:
  报错信息如下:
  

jps命令正常,但是8088端口的WEB页面无法访问  

解决方案:
  

检查一下防火墙和selinux状态, 将防火墙和selinux关闭  
防火墙:
  

service iptables status  

  关闭selinux:


  •   永久修改
      

    修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
  •   临时修改,执行以下命令:
      

    setenforce 0      

      内容扩展:
      

    setenforce 1: 设置SELinux 成为enforcing模式  
    setenforce 0: 设置SELinux 成为permissive模式

  


问题7:
  报错信息如下:
  

8088端口访问正常,但是看不到datanode节点  

解决方案:
  

可能出现的问题和解决方案:  1.8080端口没有打开, 手动启动yarn
  2.8080端口被其他进程占用, kill掉占用该端口的进程, 然后重启yarn
  3.8080端口被其他进程占用, 若(2)中占用的程序不能kill调用,则在yarn-site.xml配置文件中配置yarn.resourcemanager.address项, 将8080端口改为其他端口号, 比如: 8085
  

  


问题8:
  报错信息如下:
  

org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.216.131:54310  

解决方案:
  hostname的问题,同时,namenode与datanode的/etc/hosts内容都必须是ip位址与hostname的对应,不能使用127.0.0.1代替本机的ip地址,否则hadoop使用hostname找IP时,会以127.0.0.1作为IP地址.
  

1. 检查slave机器到master机器的连通性;  
2. 检查master机器上,是否打开了192.168.216.131:54310的监听(netstat -nap | grep 54310)
  

  


问题9:
  报错信息如下:
  

FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain:  

解决方案:
  

检查hostname是否在/etc/hosts文件中配置, 若无则将hostname配置到/etc/hosts文件中  

  


问题10:
  1.报错信息如下:
  

java.net.NoRouteToHostException: No route to host  

解决方案:
  

zookeeper的IP要配对  

  


问题11:
  报错信息如下:
  

  CALL TO LOCALHOST/127.0.0.1:9000   

解决方案:
  检查网卡,主机名,主机名与IP的映射是否正确:
  

  /etc/sysconfig/network-scripts/ifcfg-eth0            网卡:  /etc/sysconfig/network                               主机名:
  /etc/hosts                                           主机名与IP的映射:  
  

  


问题12:
  报错信息如下:
  

  打开namenode:50070页面,Datanode Infomation只显示一个节点  

解决方案:
  

检查主机名,主机名与IP的映射,SSH配置是够正确  主机名:/etc/sysconfig/network   
  主机名与IP的映射:/etc/hosts
  SSH配置:
  ~/.ssh/config
  ~/.ssh/authorized_keys
  ~/.ssh/known_hosts
  

  


问题13:
  报错信息如下:
  

  hadoop的文件不能下载以及YARN中Tracking UI不能访问历史日志   

解决方案:
  

  windows系统不能解析域名所致,将/etc/hosts文件中主机名与IP的映射配置到到windows系统下的C:\Windows\System32\drivers\etc\hosts文件中  

  


问题14:
  5.报错信息如下:
  

  NativeCrc32.nativeComputeChunkedSumsByteArray  

解决方案:
  

  配置eclipse的hadoop-home,bin和system32文件夹中加入64位的2.6版本的hadoop.dll  

  


问题15:
  报错信息如下:
  

  HDFS误删文件如何恢复   

解决方案:
  在$HADOOP_HOME/etc/hadoop/core-site.xml文件中添加以下配置
  

<property>  <name>fs.trash.interval</name>
  <value>2880</value>
  <description>HDFS垃圾箱设置,可以恢复误删除,配置的值为分钟数,0为禁用</description>
  
</property>
  

  恢复文件执行hdfs  dfs  -mv  /user/root/.Trash/Current/误删文件  /原路径
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425068-1-1.html 上篇帖子: Hadoop 2.x完全分布式安装 下篇帖子: TensorFlow的开源与Hadoop的开源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表