执行错误,从org.apache.hadoop.hive.ql.exec.MapRedTask返回代码1

执行错误,从org.apache.hadoop.hive.ql.exec.MapRedTask返回代码1,hive,Hive,我在HiveQL中执行条件查询时遇到问题。基本的select*fromtablename语句工作正常。 错误是: Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks determined at compile time: 1 In order to change the average load for a reducer (in bytes): set hive.exec.reducers.byt

我在HiveQL中执行条件查询时遇到问题。基本的
select*fromtablename
语句工作正常。 错误是:

Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapred.reduce.tasks=<number>
java.net.ConnectException: Call to /0.0.0.0:8021 failed on connection exception: java.net.ConnectException: Connection refused
        at org.apache.hadoop.ipc.Client.wrapException(Client.java:1134)
        at org.apache.hadoop.ipc.Client.call(Client.java:1110)
        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226)
        at org.apache.hadoop.mapred.$Proxy5.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398)
        at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384)
        at org.apache.hadoop.mapred.JobClient.createRPCProxy(JobClient.java:501)
        at org.apache.hadoop.mapred.JobClient.init(JobClient.java:486)
        at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:469)
        at org.apache.hadoop.hive.ql.exec.ExecDriver.execute(ExecDriver.java:655)
        at org.apache.hadoop.hive.ql.exec.MapRedTask.execute(MapRedTask.java:123)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:130)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1063)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:900)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:748)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:286)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:516)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:186)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
        at org.apache.hadoop.net.SocketIOWithTimeout.connect(
....
Job Submission failed with exception 'java.net.ConnectException(Call to /0.0.0.0:8021 failed on connection exception: java.net.ConnectException: Connection refused)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MapRedTask
MapReduce作业总数=1
正在启动作业1/1
编译时确定的reduce任务数:1
要更改减速器的平均负载(以字节为单位):
设置hive.exec.reducers.bytes.per.reducer=
为了限制减速器的最大数量:
设置hive.exec.reducers.max=
为了设置恒定数量的减速器:
设置mapred.reduce.tasks=
java.net.ConnectException:调用/0.0.0.0:8021失败,连接异常:java.net.ConnectException:连接被拒绝
位于org.apache.hadoop.ipc.Client.wrapException(Client.java:1134)
位于org.apache.hadoop.ipc.Client.call(Client.java:1110)
位于org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226)
位于org.apache.hadoop.mapred.$Proxy5.getProtocolVersion(未知来源)
位于org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398)
位于org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384)
位于org.apache.hadoop.mapred.JobClient.createRPCProxy(JobClient.java:501)
位于org.apache.hadoop.mapred.JobClient.init(JobClient.java:486)
位于org.apache.hadoop.mapred.JobClient.(JobClient.java:469)
位于org.apache.hadoop.hive.ql.exec.ExecDriver.execute(ExecDriver.java:655)
位于org.apache.hadoop.hive.ql.exec.MapRedTask.execute(MapRedTask.java:123)
位于org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:130)
位于org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
位于org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1063)
位于org.apache.hadoop.hive.ql.Driver.execute(Driver.java:900)
位于org.apache.hadoop.hive.ql.Driver.run(Driver.java:748)
位于org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:209)
位于org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:286)
位于org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:516)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:186)
原因:java.net.ConnectException:连接被拒绝
在sun.nio.ch.socketchannel.checkConnect(本机方法)
位于sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
位于org.apache.hadoop.net.SocketIOWithTimeout.connect(
....
作业提交失败,出现异常“java.net.ConnectException(连接异常时调用/0.0.0.0:8021失败:java.net.ConnectException:连接被拒绝)”
失败:执行错误,从org.apache.hadoop.hive.ql.exec.MapRedTask返回代码1

我已尝试使用Eclipse IDE和配置单元外壳。输出相同。请帮助!

在大多数情况下,此错误是由权限问题引起的,其中运行命令的配置单元用户没有访问/user/Hive的权限


您需要检查Hadoop配置单元集群的配置。我注意到,使用Hive2时,您需要更改在使用HiveQL时指定还原器数量的方式。在Hive1上,我使用了:

SET mapred.reduce.tasks=1
但是在Hive2上,我注意到我需要使用:

SET mapreduce.job.reduces=1

我收到了相同的错误消息,更改此消息为我解决了问题。

这应该可以解决您的问题,因为默认情况下此属性将设置为
true

set hive.auto.convert.join.noconditionaltask=false
hive.auto.convert.join.noconditionaltask
-配置单元是否启用 基于 输入文件大小

如果此参数为on,则 n路联接的表/分区小于指定的大小, 联接直接转换为映射联接(没有条件 任务)


我使用VirtualBox安装了cloudera快速启动映像

sudo vi/etc/hive/conf/hive-site.xml并将hive.auto.convert.join属性设置为false(您需要root用户才能编辑sudo)


我在hive-site.xml.xml中没有hive.auto.convert.join.noconditionaltask属性。

对我来说,这是因为没有设置队列

set mapred.job.queue.name=xxxx;
set mapreduce.job.reduces=1;

设置这两个参数对我都有效。

你现在有解决方案吗?我也面临同样的问题。你可能会发现这个web应用程序很有用。