分享

hive查询时出错,求大神帮助啊!

sniperD 发表于 2016-5-13 23:55:28 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 16424
新手求教
我用hive进行查询的时候出现No enum constant org.apache.hadoop.mapreduce.JobCounter.MB_MILLIS_MAPS这个错误,请问这是怎么回事啊。
我的hadoop版本是2.5.2 hive是0.13.1

hive> select url from sogou_ext_20111230 limit 10;
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1463039674066_0006, Tracking URL = http://http://master.D:18088/proxy/application_1463039674066_0006/
Kill Command = /home/spark/hadoop/bin/hadoop job  -kill job_1463039674066_0006
Hadoop job information for Stage-1: number of mappers: 3; number of reducers: 0
2016-05-13 23:38:30,632 Stage-1 map = 0%,  reduce = 0%
java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.mapreduce.JobCounter.MB_MILLIS_MAPS
        at java.lang.Enum.valueOf(Enum.java:236)
        at org.apache.hadoop.mapreduce.counters.FrameworkCounterGroup.valueOf(FrameworkCounterGroup.java:148)
        at org.apache.hadoop.mapreduce.counters.FrameworkCounterGroup.findCounter(FrameworkCounterGroup.java:182)
        at org.apache.hadoop.mapreduce.counters.AbstractCounters.findCounter(AbstractCounters.java:154)
        at org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:240)
        at org.apache.hadoop.mapred.ClientServiceDelegate.getJobCounters(ClientServiceDelegate.java:370)
        at org.apache.hadoop.mapred.YARNRunner.getJobCounters(YARNRunner.java:511)
        at org.apache.hadoop.mapreduce.Job$7.run(Job.java:756)
        at org.apache.hadoop.mapreduce.Job$7.run(Job.java:753)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
        at org.apache.hadoop.mapreduce.Job.getCounters(Job.java:753)
        at org.apache.hadoop.mapred.JobClient$NetworkedJob.getCounters(JobClient.java:374)
        at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper$ExecDriverTaskHandle.getCounters(HadoopJobExecHelper.java:480)
        at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:306)
        at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:547)
        at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:426)
        at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:136)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1503)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1270)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1088)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        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:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Ended Job = job_1463039674066_0006 with exception 'java.lang.IllegalArgumentException(No enum constant org.apache.hadoop.mapreduce.JobCounter.MB_MILLIS_MAPS)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask


求大神帮助啊!

已有(6)人评论

跳转到指定楼层
sniperD 发表于 2016-5-14 08:34:11
这个到底是怎么回事啊,在网上没有找到解决办法。
回复

使用道具 举报

jixianqiuxue 发表于 2016-5-14 09:17:52
sniperD 发表于 2016-5-14 08:34
这个到底是怎么回事啊,在网上没有找到解决办法。

MR 2.3+后LIB库有一些变动,例如 JobCounter.MB_MILLIS_REDUCES就是在2.3版本加入的。而hive版本过低,可能没有使用的YARN/MR版本没有这个变量,所以会抛出“No enum constant”异常。
楼主可以升级hive版本
回复

使用道具 举报

sniperD 发表于 2016-5-14 09:31:37
jixianqiuxue 发表于 2016-5-14 09:17
MR 2.3+后LIB库有一些变动,例如 JobCounter.MB_MILLIS_REDUCES就是在2.3版本加入的。而hive版本过低,可 ...

我在网上看到的这两个版本是兼容的啊,而且我换过hive1.2.1的会出现jline那个错误,用网上说的删除hadoop的jline包的方法也不行,你说我该换哪个版本呢?
回复

使用道具 举报

jixianqiuxue 发表于 2016-5-14 09:34:30
sniperD 发表于 2016-5-14 09:31
我在网上看到的这两个版本是兼容的啊,而且我换过hive1.2.1的会出现jline那个错误,用网上说的删除hadoop ...

官网上说也是兼容的,但是不是绝对的。这应该是个bug

https://issues.apache.org/jira/browse/MAPREDUCE-5831


可以换hive2.0
回复

使用道具 举报

sniperD 发表于 2016-5-14 09:49:37
jixianqiuxue 发表于 2016-5-14 09:34
官网上说也是兼容的,但是不是绝对的。这应该是个bug

https://issues.apache.org/jira/browse/MAPREDU ...

我换了2.0之后做查询又出错了hive> select * from sogou_ext_20111230 limit 10;FAILED: SemanticException Unable to determine if hdfs://master.D:9000/test/sogou_ext/20111230 is encrypted: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.RpcNoSuchMethodException): Unknown method getEZForPath called on org.apache.hadoop.hdfs.protocol.ClientProtocol protocol.


请问这又是什么原因啊??
回复

使用道具 举报

jixianqiuxue 发表于 2016-5-14 15:01:10
sniperD 发表于 2016-5-14 09:49
我换了2.0之后做查询又出错了hive> select * from sogou_ext_20111230 limit 10;FAILED: SemanticExcepti ...

你的数据加密了,导致hive不认识无法分割
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条