繁体   English   中英

蜂巢-选择计数(*)不适用于Tez,但适用于MR

[英]Hive - Select count(*) not working with Tez with but works with MR

我有一个带有木地板数据的Hive外部表。

当我select count(*) from table1运行select count(*) from table1 ,它出现Tez失败。

但是,当执行引擎更改为MR时,它将起作用。 知道为什么Tez失败了吗? 我在Tez中遇到以下错误:

错误:org.apache.hive.service.cli.HiveSQLException:处理语句时出错:失败:执行错误,从org.apache.hive的org.apache.hadoop.hive.ql.exec.tez.TezTask返回代码1。 org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257)处的service.cli.operation.Operation.toSQLException(Operation.java:380)在org.apache.hive.service.cli中。 org.apache.hive.service.cli.operation.SQLOperation $ BackgroundWork $ 1.run(SQLOperation.java:348)处的operation.SQLOperation.access $ 800(SQLOperation.java:91)在java.security.AccessController.doPrivileged(本机方法) ),位于org.apache.hive.service.cli.operation的org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)的javax.security.auth.Subject.doAs(Subject.java:422)处。 Java上的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.ThreadPool Executor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)(状态= 08S01,代码= 1)

您必须将tez.tar.gz文件放在hdfs上。 我认为您可能会错过这一步。

在hdfs上创建一个apps文件夹

hdfs dfs -mkdir -p /hadoop/apps/tez/

放置tez.tar.gz文件

hdfs dfs -put /usr/hadoop/tez/lib/tez.tar.gz /hadoop/apps/tez/

授予该文件夹和tar的权限

hdfs dfs -chown -R $HDFS_USER:$HADOOP_USER /hadoop
hdfs dfs -chmod -R 555 /hadoop/apps/tez
hdfs dfs -chmod -R 444 /hadoop/apps/tez/tez.tar.gz

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM