【问题标题】:Hive - Select count(*) not working with Tez with but works with MRHive - Select count(*) 不与 Tez 一起使用,但与 MR 一起使用
【发布时间】:2018-03-27 03:38:43
【问题描述】:

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

当我运行 select count(*) from table1 时,它会因 Tez 而失败。

但是当执行引擎更改为 MR 时,它可以工作。知道为什么 Tez 会失败吗? Tez 出现以下错误:

错误:org.apache.hive.service.cli.HiveSQLException:处理语句时出错:FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.tez.TezTask 返回代码 1 在 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:1698) 在 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=1)

【问题讨论】:

  • 你能解决这个问题吗?

标签: hadoop hive mapreduce hiveql tez


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多