Hive2.2.0+Tez0.8.4出现NoSuchMethodError问题的解决办法

    查看hive的log发现:

2016-08-12T18:16:58,904 ERROR [1835d0e0-c33d-45ae-885d-a169bdf9d9a9 main] exec.TaskRunner: Error in executeTask
java.lang.NoSuchMethodError: org.apache.hadoop.mapreduce.v2.util.MRApps.addLog4jSystemProperties(Lorg/apache/hadoop/mapred/Task;Ljava/util/List;Lorg/apache/hadoop/conf/Configuration;)V
        at org.apache.hadoop.mapred.YARNRunner.createApplicationSubmissionContext(YARNRunner.java:399) ~[hadoop-mapreduce-client-jobclient-2.7.2.jar:?]
        at org.apache.hadoop.mapred.YARNRunner.submitJob(YARNRunner.java:286) ~[hadoop-mapreduce-client-jobclient-2.7.2.jar:?]
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:536) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_60]
        at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_60]
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) ~[hadoop-common-2.6.0.jar:?]
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:557) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_60]
        at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_60]
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) ~[hadoop-common-2.6.0.jar:?]
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548) ~[hadoop-mapreduce-client-core-2.6.0.jar:?]
        at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:417) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:141) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1896) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1600) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1352) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1095) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1083) ~[hive-exec-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232) ~[hive-cli-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183) ~[hive-cli-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399) ~[hive-cli-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776) ~[hive-cli-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714) ~[hive-cli-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641) ~[hive-cli-2.2.0-SNAPSHOT.jar:2.2.0-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_60]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_60]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_60]
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221) ~[hadoop-common-2.6.0.jar:?]
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136) ~[hadoop-common-2.6.0.jar:?]
2016-08-12T18:16:58,916 ERROR [1835d0e0-c33d-45ae-885d-a169bdf9d9a9 main] ql.Driver: FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. org.apache.hadoop.mapreduce.v2.util.MRApps.addLog4jSystemProperties(Lorg/apache/hadoop/mapred/Task;Ljava/util/List;Lorg/apache/hadoop/conf/Configuration;)V

    看上去似乎是jar包的版本不对,然后查了一下这个方法是在hadoop-mapreduce-client-common.jar这个包里面,进入hive的lib文件夹,发现对应的这个jar包是从tez/lib里面拷过来的hadoop-mapreduce-client-common-2.6.0.jar,因为我hadoop的版本是2.7.2,所以最初想法是从hadoop/share/hadoop/mapreduce/里面把对应2.7.2版本的jar包拷进来替换掉这个2.6.0,但是发现替换之后仍然会报这个错误。

    折腾了半天,后来干脆把从tez里面拷到hive/lib里面的所有的hadoop-*的jar包全给干掉,再切换到mr模式,发现hive已经可以正常执行查询了。

    这样的解决办法稍微有点麻烦,因为下次切换到tez模式下的时候需要再次把tez里面的hadoop的这些个jar拷到hive/lib下面,但是还没找到更好的解决办法,只能暂时这样了。

转载于:https://my.oschina.net/whulyx/blog/731926

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值