簡體   English   中英

來自 org.apache.hadoop.hive.ql.exec.mapredtask 的配置單元執行錯誤返回代碼 2 失敗

[英]hive failed execution error return code 2 from org.apache.hadoop.hive.ql.exec.mapredtask

我有一個查詢。 它在 Hive CLI 上執行良好並返回結果。 但是當我在 Hive JDBC 的幫助下執行它時,出現以下錯誤:

java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
    at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:192)

問題是什么? 此外,我正在通過 Shell 腳本啟動 Hive Thrift 服務器。 (我編寫了一個 shell 腳本,其中包含啟動 Hive Thrift Server 的命令)后來我決定通過鍵入以下命令手動啟動 Hive thrift Server:

hadoop@ubuntu:~/hive-0.7.1$ bin/hive --service hiveserver
Starting Hive Thrift Server
org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:10000.
    at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:99)
    at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:80)
    at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:73)
    at org.apache.hadoop.hive.service.HiveServer.main(HiveServer.java:384)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:186)

hadoop@ubuntu:~/hive-0.7.1$

請幫我解決這個問題。 謝謝

可能是權限問題,只需嘗試一些查詢,如“SELECT * FROM”,它不會啟動MR作業。

對於此錯誤:
java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuer

轉到此鏈接:

http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_Hive.html

並添加

**hadoop-0.20-core.jar
hive/lib/hive-exec-0.7.1.jar
hive/lib/hive-jdbc-0.7.1.jar
hive/lib/hive-metastore-0.7.1.jar
hive/lib/hive-service-0.7.1.jar
hive/lib/libfb303.jar
lib/commons-logging-1.0.4.jar    
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar**

在項目的類路徑中,從hadoop和hive的lib中添加這個jar,然后嘗試代碼。 並且還添加了hadoop,hive和hbase(如果你正在使用)lib文件夾路徑到項目類路徑的路徑,就像你添加了jar一樣。

而你得到的第二個錯誤

類型

**netstat -nl | grep 10000**

如果它顯示某些東西意味着蜂巢服務器已經運行。 第二個錯誤僅在您指定的端口已被某個其他進程獲取時出現,默認情況下服務器端口為10000,因此上面說的netstat命令非常。

注意:假設您已使用代碼退出連接... bin / hive如果您通過bin / hive連接>那么代碼將無法連接,因為我認為(不確定)只有一個客戶端可以連接到配置單元服務器。

做上述步驟有望解決您的問題。

注意:當您要執行代碼時退出cli,並且在執行代碼時不啟動cli。

嘗試在代碼之前粘貼這些屬性。

SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;
set hive.auto.convert.join = false;
set hive.exec.max.dynamic.partitions=100000;
set hive.exec.max.dynamic.partitions.pernode=10000;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM