首页 文章

Hive - 选择计数(*)不与Tez一起使用但与MR配合使用

提问于
浏览
0

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

当我运行 select count(*) from table1 时,它与Tez失败 .

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

错误:org.apache.hive.service.cli.HiveSQLException:处理语句时出错:FAILED:执行错误,从org.apache上的org.apache.hadoop.hive.ql.exec.tez.TezTask返回代码1位于org.apache.hive.service.cli的org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257)的.service.cli.operation.Operation.toSQLException(Operation.java:380) .operation.SQLOperation.access $ 800(SQLOperation.java:91)atg.apache.hive.service.cli.operation.SQLOperation $ BackgroundWork $ 1.run(SQLOperation.java:348)at java.security.AccessController.doPrivileged(Native方法)位于org.apache.hive.service.cli.operation的org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)的javax.security.auth.Subject.doAs(Subject.java:422) . javaOperation $ BackgroundWork.run(SQLOperation.java:362)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at at java.util.concurrent.ThreadPo olExecutor.runWorker(ThreadPoolExecutor.java:1149)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748),state = 08S01,code = 1)

1 回答

  • 0

    您必须将 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
    

相关问题