3

1つ質問があります。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)

何が問題ですか?また、シェル スクリプトを使用して Hive Thrift サーバーを起動しています。(私は、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$

これから私を助けてください。ありがとう

4

2 に答える 2

1

権限に問題がある可能性があります。MR ジョブを開始しない "SELECT * FROM " などのクエリを試してみてください。

于 2012-05-10T13:34:45.017 に答える
1

このエラーの場合:
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 を追加して、コードを試してください。また、jar を追加したように、hadoop、hive、および hbase (使用している場合) lib フォルダー パスのパスをプロジェクト クラス パスに追加します。

そして、あなたが得た2番目のエラーについて

タイプ

**netstat -nl | grep 10000**

何かが表示される場合は、Hive サーバーが既に実行されていることを意味します。2番目のエラーは、指定しているポートが他のプロセスによって既に取得されている場合にのみ発生します.デフォルトのサーバーポートは10000であるため、上記のnetstatコマンドで非常に.

注 : コード exit from ... bin/hive を使用して接続したとします。bin/hive を介して接続している場合、コードは接続されません。(確かではありませんが) 1 つのクライアントしかハイブ サーバーに接続できないためです。

上記の手順を実行すると、問題が解決することを願っています。

注:コードを実行するときはcliを終了し、コードの実行中にcliを開始しないでください。

于 2012-05-10T15:13:08.920 に答える