问题排查方式 

  • 一般的错误,查看错误输出,按照关键字google
  • 异常错误(如namenode、datanode莫名其妙挂了):查看hadoop($HADOOP_HOME/logs)或hive日志

hadoop错误 
1.datanode无法正常启动 
添加datanode后,datanode无法正常启动,进程一会莫名其妙挂掉,查看namenode日志显示如下: 

  1. -06-21 18:53:39,182 FATAL org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.getDatanode: Data node x.x.x.x:50010 is attempting to report storage ID DS-1357535176-x.x.x.x-50010-1371808472808. Node y.y.y.y:50010 is expected to serve this storage.  

原因分析: 
    拷贝hadoop安装包时,包含data与tmp文件夹(见本人《hadoop安装》一文),未成功格式化datanode 
解决办法: 

  1. /data  
  2. /tmp  
  3. hadoop datanode -format  

2. safe mode 

  1. -06-20 10:35:43,758 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop cause:org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot renew lease for DFSClient_hb_rs_wdev1.corp.qihoo.net,60020,1371631589073. Name node is in safe mode.  

解决方案: 

  1. hadoop dfsadmin -safemode leave  

3.连接异常 

  1. -06-21 19:55:05,801 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Call to homename/x.x.x.x:9000 failed on local exception: java.io.EOFException  

可能原因: 

  • namenode监听127.0.0.1:9000,而非0.0.0.0:9000或外网IP:9000
  • iptables限制

解决方案: 

  • 检查/etc/hosts配置,使得hostname绑定到非127.0.0.1的IP上
  • iptables放开端口

4. namenode id 

  1. ; datanode namespaceID = 1462711424 .   

问题:Namenode上namespaceID与datanode上namespaceID不一致。 

  问题产生原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致。启动失败。 

  解决办法:参考该网址 http://blog.csdn.net/wh62592855/archive/2010/07/21/5752199.aspx 给出两种解决方法,我们使用的是第一种解决方法:即: 

  (1)停掉集群服务 

  (2)在出问题的datanode节点上删除data目录,data目录即是在hdfs-site.xml文件中配置的dfs.data.dir目录,本机器上那个是/var/lib/hadoop-0.20/cache/hdfs/dfs/data/ (注:我们当时在所有的datanode和namenode节点上均执行了该步骤。以防删掉后不成功,可以先把data目录保存一个副本). 

  (3)格式化namenode. 

  (4)重新启动集群。 

  问题解决。 
    这种方法带来的一个副作用即是,hdfs上的所有数据丢失。如果hdfs上存放有重要数据的时候,不建议采用该方法,可以尝试提供的网址中的第二种方法。 

5. 目录权限 
start-dfs.sh执行无错,显示启动datanode,执行完后无datanode。查看datanode机器上的日志,显示因dfs.data.dir目录权限不正确导致: 

  1. expected: drwxr-xr-x,current:drwxrwxr-x  

解决办法: 
    查看dfs.data.dir的目录配置,修改权限即可。 

hive错误 
1.NoClassDefFoundError 
Could not initialize class java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.io.HbaseObjectWritable 
将protobuf-***.jar添加到jars路径 

  1. //$HIVE_HOME/conf/hive-site.xml  
  2. <property>  
  3.    <name>hive.aux.jars.path</name>  
  4.    <value>file:///data/hadoop/hive-0.10.0/lib/hive-hbase-handler-0.10.0.jar,file:///data/hadoop/hive-0.10.0/lib/hbase-0.94.8.jar,file:///data/hadoop/hive-0.10.0/lib/zookeeper-3.4.5.jar,file:///data/hadoop/hive-0.10.0/lib/guava-r09.jar,file:///data/hadoop/hive-0.10.0/lib/hive-contrib-0.10.0.jar,file:///data/hadoop/hive-0.10.0/lib/protobuf-java-2.4.0a.jar</value>  
  5. </property>  

2.hive动态分区异常 
[Fatal Error] Operator FS_2 (id=2): Number of dynamic partitions exceeded hive.exec.max.dynamic.partitions.pernode 

  1. ;  

3.mapreduce进程超内存限制——hadoop Java heap space 
vim mapred-site.xml添加: 

  1. //mapred-site.xml  
  2.     <property>  
  3.   
  4.     <name>mapred.child.java.opts</name>  
  5.   
  6.     <value>-Xmx2048m</value>  
  7.   
  8.     </property>  
  1. #$HADOOP_HOME/conf/hadoop_env.sh  
  2.   

4.hive文件数限制 
[Fatal Error] total number of created files now is 100086, which exceeds 100000 

  1. ;  

5.metastore连接超时 

  1. FAILED: SemanticException org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out  

解决方案: 

  1. ;  

6. java.io.IOException: error=7, Argument list too long 

  1. ):   
  2. -----  
  3. Task ID:  
  4.   task_201306241630_0189_r_000009  
  5.   
  6. URL:  
  7. /taskdetails.jsp?jobid=job_201306241630_0189&tipid=task_201306241630_0189_r_000009  
  8. -----  
  9. Diagnostic Messages for this Task:  
  10. ) {"key":{"reducesinkkey0":"164058872","reducesinkkey1":"djh,S1","reducesinkkey2":"20130117170703","reducesinkkey3":"xxx"},"value":{"_col0":"1","_col1":"xxx","_col2":"20130117170703","_col3":"164058872","_col4":"xxx,S1"},"alias":0}  
  11. )  
  12. )  
  13. )  
  14. .run(Child.java:255)  
  15.     at java.security.AccessController.doPrivileged(Native Method)  
  16. )  
  17. )  
  18. )  
  19. ) {"key":{"reducesinkkey0":"164058872","reducesinkkey1":"xxx,S1","reducesinkkey2":"20130117170703","reducesinkkey3":"xxx"},"value":{"_col0":"1","_col1":"xxx","_col2":"20130117170703","_col3":"164058872","_col4":"djh,S1"},"alias":0}  
  20. )  
  21.  more  
  22. ]: Unable to initialize custom script.  
  23. )  
  24. )  
  25. )  
  26. )  
  27. )  
  28. )  
  29. )  
  30. )  
  31. )  
  32.  more  
  33. , 参数列表过长  
  34. )  
  35. )  
  36.  more  
  37. , 参数列表过长  
  38.     at java.lang.UNIXProcess.forkAndExec(Native Method)  
  39. )  
  40. )  
  41. )  
  42.  more  
  43.   
  44.   
  45.  from org.apache.hadoop.hive.ql.exec.MapRedTask. Unable to initialize custom script.  

解决方案: 
升级内核或减少分区数https://issues.apache.org/jira/browse/HIVE-2372 
6.runtime error 

  1. hive> show tables;  
  2. FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient  
  3.  from org.apache.hadoop.hive.ql.exec.DDLTask  

问题排查: 

  1. hive -hiveconf hive.root.logger=DEBUG,console  
  1. /07/15 16:29:24 INFO hive.metastore: Trying to connect to metastore with URI thrift://xxx.xxx.xxx.xxx:9083  
  2. /07/15 16:29:24 WARN hive.metastore: Failed to connect to the MetaStore Server...  
  3. org.apache.thrift.transport.TTransportException: java.net.ConnectException: 拒绝连接  
  4. 。。。  
  5. MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thrift.transport.TTransportException: java.net.ConnectException: 拒绝连接  

尝试连接9083端口,netstat查看该端口确实没有被监听,第一反应是hiveserver没有正常启动。查看hiveserver进程却存在,只是监听10000端口。 
查看hive-site.xml配置,hive客户端连接9083端口,而hiveserver默认监听10000,找到问题根源了 
解决办法: 

  1.   
  2. //或修改$HIVE_HOME/conf/hive-site.xml的hive.metastore.uris部分  
  3.   

hadoop+hive使用中遇到的问题汇总的更多相关文章

  1. Hadoop Hive基础sql语法

     目录 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的 ...

  2. Hadoop Hive sql语法详解

    Hadoop Hive sql语法详解 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件 ...

  3. Hadoop Hive sql 语法详细解释

    Hive 是基于Hadoop 构建的一套数据仓库分析系统.它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,能够将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  4. [转]Hadoop Hive sql语法详解

    转自 : http://blog.csdn.net/hguisu/article/details/7256833 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式 ...

  5. Hadoop Hive sql 语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询 ...

  6. flume学习以及ganglia(若是要监控hive日志,hive存放在/tmp/hadoop/hive.log里,只要运行过hive就会有)

    python3.6hdfs的使用 https://blog.csdn.net/qq_29863961/article/details/80291654 https://pypi.org/  官网直接搜 ...

  7. 【转载】Hadoop Hive基础sql语法

    转自:http://www.cnblogs.com/HondaHsu/p/4346354.html Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在H ...

  8. Hive创建表格报【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException】引发的血案

    在成功启动Hive之后感慨这次终于没有出现Bug了,满怀信心地打了长长的创建表格的命令,结果现实再一次给了我一棒,报了以下的错误Error, return code 1 from org.apache ...

  9. FineReport中hadoop,hive数据库连接解决方案

    1. 描述 Hadoop是个很流行的分布式计算解决方案,Hive是基于hadoop的数据分析工具.一般来说我们对Hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连 ...

随机推荐

  1. 关于swap

    一个小小的swap确出现了好多个版本.不断的优化,不断的发现问题: 版本一: function swap(a,b){ var temp = a; a = b; b = temp; } 这个版本对于数组 ...

  2. JAVA期末设计第十三周

    一.项目完成计划 十三周和十四周完成用户交互界面的设计(1.登陆界面2.订票以及查询界面3.用户管理界面4.退票界面): 十三周完成登陆界面,十四周完成订票以及查询界面,用户管理界面和退票界面 十五周 ...

  3. 进阶版css的点滴

    -moz-:firefox: -webkit- Safari 和 Chrome

  4. (Python)继承

    面向对象的另一个特性是继承,继承可以更好的代码重用. 例如一个学校里面的成员有老师.学生.老师和学生都有共同的属性名字和年纪.但老师还有它自己的属性,如工资.学生也有它的属性,如成绩. 因此我们可以设 ...

  5. 实现十进制无符号整数m到十六进制数的转换功能

    /*利用顺序栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能.*//******************************** ...

  6. Fiddler 工作原理

    Fiddler工作原理: 就在在客户端与服务器端创建一个代理服务器: 在开启Fiddler后,Fiddler会自动窜改浏览器的代理,例如我们打开Fiddler,打开IE浏览器--设置--Interne ...

  7. Win7 64位命令行编译cuda及设置Windows显卡响应时间

    在开始菜单中找到Visual Studio 2013 >> Visual Studio Tools 选择86或64版本的VC命令提示符环境,我用的 VS2013 x86 Native To ...

  8. CodeForces 742A Arpa’s hard exam and Mehrdad’s naive cheat

    题意:求1378 n次幂的最后一位. 析:两种方法,第一种,就是快速幂,第二种找循环节,也很好找,求一下前几个数就好. 代码如下: #pragma comment(linker, "/STA ...

  9. STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题

    STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085的问题讨论:http://www.rt-thr ...

  10. 修改centos启动项

    centos7下修改启动项在路径/etc/grub.d/文件路径下,修改完成之后需要运行命令 grub2-mkconfig --output=/boot/grub2/grub.cfg