Javaを使用してHiveでテーブルを作成しようとしています。見つけた
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);}
}
この例外がスローされる理由と、どうすれば修正できますか?
hiveserverに問題があることを説明し、Hiveログを確認することを提案する非常に一般的なエラーメッセージです。 Hiveログにアクセスして例外呼び出しスタックを見つけた場合は、根本原因を見つけることができます。例外を共有している場合は、私がお手伝いできる可能性があります。
私が見た最も一般的な問題:
同時実行に関連するメタストアの問題
Hiveサーバーを$ Hive --service yourhiveserverとして起動し、数日間実行し続けてからコードを実行すると、サーバーへの接続がブローカーであり、まったく同じエラーが発生する可能性があります。サーバーに再接続すると、このエラーはなくなります。これは、しばらくするとwait_timeが期限切れになり、切断が発生するためです。
ポート固有のエラー
Hiveサーバーを起動する前に、必ずHiveサーバー用に開いているポートを設定し、以下のように設定してください。
$export Hive_PORT=10000
$Hive --service hiveserver
$ _run_your_code
他の理由も考えられますが、最善のオプションは、Hiveログのコールスタックをチェックして根本原因を調べ、問題を解決することです。