ITPub博客

首页 > > > Hive报错之java.lang.NoClassDefFoundError: org/codehau

Hive报错之java.lang.NoClassDefFoundError: org/codehau

作者:longmanma 时间:2019-12-17 17:57:27 0 删除 编辑

一、问题:

在使用Hive0.11进行select查询的时候报:

hive>createtablezhifu2asselectdistinctuid,substr(time,1,12),sitefrom zhifu;

Total MapReduce jobs =1Launching Job 1outof1Numberofreduce tasksnotspecified. Estimatedfrominput data size:1Inordertochange the averageloadfora reducer (in bytes):

sethive.exec.reducers.bytes.per.reducer=<number>Inordertolimit the maximumnumberof reducers:

sethive.exec.reducers.max=<number>Inordertoseta constantnumberof reducers:

setmapred.reduce.tasks=<number>Starting Job =job_201403211432_0001, Tracking URL=http://node1:60030/jobdetails.jsp?jobid=job_201403211432_0001KillCommand=/app/hadoop/bin/../bin/hadoop job-kill job_201403211432_0001

Hadoop job information forStage-1:numberofmappers:1;numberofreducers:12014-03-2115:51:13,341Stage-1map=0%, reduce=0%2014-03-2115:52:14,121Stage-1map=0%, reduce=0%2014-03-2115:53:15,019Stage-1map=0%, reduce=0%2014-03-2115:54:21,120Stage-1map=0%, reduce=0%2014-03-2115:55:55,130Stage-1map=0%, reduce=0%2014-03-2115:57:40,915Stage-1map=0%, reduce=0%2014-03-2115:59:28,636Stage-1map=0%, reduce=0%Ended Job =job_201403211432_0001with errors

Error during job, obtaining debugging information...

Job Tracking URL: http://node1:60030/jobdetails.jsp?jobid=job_201403211432_0001

Examining task ID: task_201403211432_0001_m_000002 (andmore)from job job_201403211432_0001nullException inthread "Thread-46" java.lang.NullPointerException

at org.apache.hadoop.hive.ql.exec.JobDebugger.showJobFailDebugInfo(JobDebugger.java:313)

at org.apache.hadoop.hive.ql.exec.JobDebugger.run(JobDebugger.java:118)

at java.lang.Thread.run(Thread.java:722)

FAILED: Execution Error, returncode2fromorg.apache.hadoop.hive.ql.exec.MapRedTask

MapReduce Jobs Launched:

Job 0: Map:1Reduce:1HDFSRead:0HDFS Write:0 FAIL

Total MapReduce CPU Time Spent: 0msec

查看jobtracker页面中该job的信息发现有:

java.lang.RuntimeException: Errorinconfiguring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:354) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307) at org.apache.hadoop.mapred.Child.main(Child.java:170) Causedby: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) ...5more Causedby: java.lang.RuntimeException: Errorinconfiguring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) ...10more Causedby: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) ...13more Causedby: java.lang.RuntimeException: Map operator initialization failed at org.apache.hadoop.hive.ql.exec.ExecMapper.configure(ExecMapper.java:121) ...18more Causedby: java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory at org.apache.hadoop.hive.ql.udf.generic.GenericUDTFJSONTuple.(GenericUDTFJSONTuple.java:56) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:113) at org.apache.hadoop.hive.ql.exec.FunctionRegistry.registerGenericUDTF(FunctionRegistry.java:526) at org.apache.hadoop.hive.ql.exec.FunctionRegistry.registerGenericUDTF(FunctionRegistry.java:520) at org.apache.hadoop.hive.ql.exec.FunctionRegistry.(FunctionRegistry.java:423) at org.apache.hadoop.hive.ql.exec.DefaultUDFMethodResolver.getEvalMethod(DefaultUDFMethodResolver.java:59) at org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge.initialize(GenericUDFBridge.java:154) at org.apache.hadoop.hive.ql.udf.generic.GenericUDF.initializeAndFoldConstants(GenericUDF.java:111) at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:141) at org.apache.hadoop.hive.ql.exec.GroupByOperator.initializeOp(GroupByOperator.java:227) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:375) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:451) at org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:407) at org.apache.hadoop.hive.ql.exec.SelectOperator.initializeOp(SelectOperator.java:62) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:375) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:451) at org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:407) at org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:186) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:375) at org.apache.hadoop.hive.ql.exec.MapOperator.initializeOp(MapOperator.java:543) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:375) at org.apache.hadoop.hive.ql.exec.ExecMapper.configure(ExecMapper.java:100) ...18more Causedby: java.lang.ClassNotFoundException: org.codehaus.jackson.JsonFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ...44more

其中Caused by: java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory是引起问题的原因。

二、原因:

Hadoop版本是0.20.2的,在$HADOOP_HOME/lib中不包含:

[hadoop@node2 lib]$ ll jackson*-rw-rw-r-- 1 hadoop hadoop 227500 2012-01-21 09:24 jackson-core-asl-1.8.8.jar-rw-rw-r-- 1 hadoop hadoop 17884 2012-01-21 09:26 jackson-jaxrs-1.8.8.jar-rw-rw-r-- 1 hadoop hadoop 668564 2012-01-21 09:24 jackson-mapper-asl-1.8.8.jar-rw-rw-r-- 1 hadoop hadoop 32353 2012-01-21 09:26 jackson-xc-1.8.8.jar

这四个包,因此会报错。

三、解决方案:

方法有两种:

1、在集群各节点上的hadoop的lib包增加相关的4个jar包,并重启集群。

2、hive prompt里输入:

hive>addjars/app/hive/lib/jackson-core-asl-1.8.8.jar jackson-jaxrs-1.8.8.jar jackson-mapper-asl-1.8.8.jar jackson-xc-1.8.8.jar

> ;

Added /app/hive/lib/jackson-core-asl-1.8.8.jarto class path

Added resource: /app/hive/lib/jackson-core-asl-1.8.8.jar

Added jackson-jaxrs-1.8.8.jarto class path

Added resource: jackson-jaxrs-1.8.8.jar

Added jackson-mapper-asl-1.8.8.jarto class path

Added resource: jackson-mapper-asl-1.8.8.jar

Added jackson-xc-1.8.8.jarto class path

Added resource: jackson-xc-1.8.8.jar

然后再执行select操作

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2730/viewspace-3167516/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-12-18

  • 博文量
    492
  • 访问量
    11988