zoukankan      html  css  js  c++  java
  • hadoop 集群常见错误解决办法

    hadoop 集群常见错误解决办法

    hadoop 集群常见错误解决办法:

     

    (一)启动Hadoop集群时易出现的错误:

    1.   错误现象:Java.NET.NoRouteToHostException: No route to host.

       原因:master服务器上的防火墙没有关闭。

       解决方法: 在master上关闭防火墙: chkconfig iptables off.

    2.    错误现象:org.apache.hadoop.ipc.RPC: Server at JMN/10.22.1.203:9000 not available yet.    /* JMN/10.22.1.203 是  hadoop集群当中master的主机名/ip */

       原因:/etc/hosts中的文件被自动篡改。

       解决方法: 将/etc/hosts 文件按配置文件要求改回来。

    3.    错误现象:Too many fetch-failures.

       原因:结点间的连通不够全面。

       解决方法:

            1) 检查 /etc/hosts要求本机ip对应服务器名,并且包含所有的服务器ip和服务器名。

            2) 检查 .ssh/authorized_keys要求包含所有服务器(包括其自身)的public key。

    (二)  在hadoop集群的master中用命令运行例子易出现的故障:

    1. 错误现象:java.lang.OutOfMemoryError: Java heap space.

       原因:JVM内存不够。

       解决方法:修改mapred-site.xml中mapred.child.java.opts属性的值,其默认值是-Xmx200m 可根据需要适当增大 该值。

    2. 错误现象:could only be replicated to 0 nodes, instead of 1

       解决方法:在NameNode上执行命令:hadoop namenode –format重新格式化HDFS,在格式化之前,需要将你  NameNode上所配置的dfs.name.dir这一namenode用来存放NameNode 持久存储名字空间及事务日志的本地文件系统路径删除,同时将各DataNode上的dfs.data.dir的路径DataNode存放块数据的本地文件系统路径的目录也删除。

    3.  错误现象:namenode in safe mode.

        原因:hadoop进入安全模式。

        解决方法:在shell中执行命令hadoop dfsadmin -safemode leave 使hadoop离开安全模式。

    (三)在windows下Eclipse中运行例子易出现的错误:

    1. 错误现象:org.apache.hadoop.security.AccessControlException: Permission denied: user=administrator, access=EXECUTE, inode="job_201111031322_0003":heipark:supergroup:rwx-.

     原因:本地用户administrator(本机windows用户)想要远程操作hadoop系统,没有权限引起的。

     解决办法:

    i、如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。

    ii、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可。

    2.错误现象:IOException: Cannot run program "chmod": CreateProcess error=2.

      原因: 没有安装cygwin或 没有配置环境变量。
        解决办法:安装并配置环境变量 bin到 path下 重启 eclipse 问题即可。

    3.  错误现象: WARN mapred.LocalJobRunner: job_local_0001
    java.lang.OutOfMemoryError: java heap space
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:781)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:350)
    ………..

      原因:客户端程序运行时java虚拟机内存分配不够

      解决办法:修改run configuration,选择Arguments选项卡,在VM arguments栏中加入-Xmx1024m,保存即可解决问题。

    hadoop错误和解决方法汇总

    分类: Hadoop

    ==================================

    windows cygwin环境下,遇到这个错误:org.apache.hadoop.security.AccessControlException: Permission denied: user=cyg_server, access=EXECUTE, inode="job_201010161322_0003":heipark:supergroup:rwx------

    解决:刚开始还使用“./bin/hadoop dfs -chmod 777 ”,后来发现老是这样设置麻烦。可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。注意生产环境处于安全考虑不要这么搞。

    ==================================

    window下使用eclipse开发hadoop程序遇到的问题。

    现象一:“DFS Locations”无法浏览DFS中文件,报错

    Cannot connect to the Map/Reduce location: heipark
    Call to localhost/127.0.0.1:9000 failed on local exception: java.io.EOFException

    现象二:启动自己编写的mapred程序报相同错误。

    原因:Hadoop服务端版本和eclipse插件版本不一致

    解决:倒腾了好几个版本eclipse和hadoop插件,有的点击没反应,不能浏览文件系统。最后整理了一下有两个办法:

    一:自己编译eclipse plugin(自己尝试编译0.21.0版本没有成功。首选遇到包的依赖问题,接着编译成功后,eclipse右键创建还是没有响应)

    二:我使用0.21.0自带的eclipse plugin在多个eclipse都不好用,在网上下了一个可以3.3,,3.4,3.5都可以跑的hadoop-0.20.3-dev-eclipse-plugin.jar(http://code.google.com/p/hadoop-eclipse-plugin/downloads/list),但是报上面的错误,有网友说是插件和hadoop版本不一致导致的。最后我下载了一个0.20.2版本hadoop,使用自带的插件在eclipse3.3.2下完美运行。

    ==================================

    Namenode报错:“jobtracker.info could only be replicated to 0 nodes, instead of 1”

    DateNode报错java.io.IOException: Incompatible namespaceIDs错误

    原因:由于DateNode一段时间未启动,再次启动与NameNode数据不同步导致。

    解决一:修改/dfs/data/current/VERSION文件中namespaceID值,保证NameNode和DateNode一致。修改原则:如果你有多个DateNode需要都需要修改,那就修改NameNode;否则就修改NameNode。总之就是最小化修改原则。这样修改不会删除数据,推荐。

    解决二:删除有问题datenode的data文件夹,然后format namenode。

    参考:http://forum.hadoop.tw/viewtopic.php?f=4&t=43

    ==================================

    在windows eclipse开发环境提交job到远处Linux hadoop集群,运行mapred报错“IOException: Cannot run program "chmod": CreateProcess error=2

    原因:安装cygwin,而且需要设置"cygwinin"到环境变量PATH中

    ==================================

    运行hive0.6.0报如下错误:

    Invalid maximum heap size: -Xmx4096m 
    The specified size exceeds the maximum representable size. 
    Could not create the Java virtual machine.

    修改“Hive-0.6.0/bin/ext/util/execHiveCmd.sh”

    HADOOP_HEAPSIZE=4096 为

    HADOOP_HEAPSIZE=256

    ==================================

    使用java client运行hive官方《 Getting Started Guide》中apachelog例子报错:

    ClassNotFoundException: org.apache.hadoop.hive.contrib.serde2.RegexSerDe

    hive没有找到hive-contrib-0.7.0.jar吗?这个jar明明在lib下,解决办法如下:

        vi hive-default.xml 

    [html] view plaincopy
     
     
    1. <property>  
    2. <name>hive.aux.jars.path</name>  
    3. <value>file:///home/hadoop/hive-0.7.0/lib/hive-contrib-0.7.0.jar</value>  
    4. </property>  
    再次启动Hive Thrift Server,OK了。
  • 相关阅读:
    python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
    python 面向对象专题(一):面向对象初识、面向对象结构、类、self、实例化对象
    数据可视化之PowerQuery篇(二十)如何计算在职员工数量?
    数据可视化之PowerQuery篇(十九)PowerBI数据分析实践第三弹 | 趋势分析法
    数据可视化之PowerQuery篇(十八)Power BI数据分析应用:结构百分比分析法
    数据可视化之PowerQuery篇(十七)Power BI数据分析应用:水平分析法
    ccoshf (Numerics) – C 中文开发手册
    HTML DOM removeAttribute() 方法
    curses.panel (Operating System) – Python 中文开发手册
    在Java中使用预定义的类名作为类或变量名称
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/7211431.html
Copyright © 2011-2022 走看看