【发布时间】:2019-05-24 20:52:54
【问题描述】:
假设我的 hive 表包含这些值:
------------+------------------------+
| col1 | col2 |
+------------+------------------------+
| philippe | 24-DEC-18 05.16.32 PM |
| hie | 24-DEC-18 05.18.26 PM |
| philippe | 26-DEC-18 05.16.32 PM |
| hie | 26-DEC-18 05.18.26 PM |
+------------+------------------------+
我正在使用hive 2.3.4。我在 collect_list/collect_set 或 group_concat 查询后收到此错误。
select col1, collect_set(col2) from table_name group by col1;
错误:org.apache.hive.service.cli.HiveSQLException:处理语句时出错:FAILED:执行错误,从返回代码 2 org.apache.hadoop.hive.ql.exec.mr.MapRedTask 在 org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:380) 在 org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257) 在 org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91) 在 org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:348) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:422) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1893) 在 org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:362) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) (state=08S01,code=2)
【问题讨论】:
-
打开作业跟踪器,找到失败的容器并获取日志。没有它们,就无法理解究竟是什么导致了错误。
-
好像是认证问题,你能运行
select * from table_name -
在哪里可以找到 jobTracker 日志?我正在使用直线来执行蜂巢查询。
-
是的。我可以运行 select * from table_name。
标签: hive