[英]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.