我有一个包含 Parquet 数据的 Hive 外部表。
当我运行 select count(*) from table1
时,它因 Tez 而失败。
但是当执行引擎更改为 MR 时,它就可以工作了。知道为什么 Tez 失败了吗?我在使用 Tez 时遇到以下错误:
Error: org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:380) at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257) at org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91) at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:348) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) at org.apache.hive.service.cli.operation.SQLOperation$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 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) (state=08S01,code=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
关于hadoop - Hive - 选择计数 (*) 不与 Tez 一起使用但与 MR 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503973/