12

Javaでハイブにテーブルを作成しようとしています。見つけた

java.sql.SQLException: org.apache.thrift.transport.TTransportException

私のコードを実行している間。

これが私のコードです

public void createTable(String tableName) {
        try{
            Statement stat = con.createStatement();

        String QueryString = "CREATE TABLE '"+tableName+"'(User_Id INTEGER NOT NULL AUTO_INCREMENT, " + "User_Name VARCHAR(25), UserId VARCHAR(20), User_Pwd VARCHAR(15), primary key(User_Id))";

        a = stat.executeUpdate(QueryString);
        if(a==1){
            System.out.println(a);
            System.out.println("Table has been created");
        }

        }catch(Exception e){
        System.out.println(e);}
} 

この例外がスローされる理由と、どうすれば修正できますか?

4

1 に答える 1

15

これは、 Hive サーバーに問題があることを説明し、Hive ログを確認することを提案する非常に一般的なエラー メッセージです。ハイブ ログにアクセスして例外コール スタックを見つければ、根本的な原因を見つけることができます。または、例外を共有していただければ、私がお手伝いできるかもしれません。

私が見た最も一般的な問題は次のとおりです。

  1. 同時実行に関連するメタ ストアの問題

  2. Hiveサーバーを$hive --service yourhiveserverとして起動し、それを数日間実行し続けてからコードを実行すると、接続がサーバーへのブローカーである可能性があり、まったく同じエラーが発生します。サーバーに再接続すると、このエラーはなくなります。これは、しばらくすると wait_time が期限切れになり、切断が発生するためです。

  3. ポート固有のエラー

Hive サーバーを起動する前に、必ず Hive サーバー用に開いているポートをセットアップし、以下のように設定してください。

 $export HIVE_PORT=10000
 $hive --service hiveserver
 $ _run_your_code

他の理由も考えられますが、最善の方法は、ハイブ ログのコール スタックを調べて根本原因を突き止め、問題を解決することです。

于 2012-06-01T05:50:05.183 に答える