簡體   English   中英

java.sql.SQLException:Hive中的org.apache.thrift.transport.TTransportException嗎?

[英]java.sql.SQLException: org.apache.thrift.transport.TTransportException in hive?

我正在嘗試使用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);}
} 

為什么會引發此異常,我該如何解決。

這是一條非常普通的錯誤消息,描述了hiveserver出現問題,並建議您查看Hive日志。 如果您訪問配置單元日志並找到異常調用堆棧,則可以找到根本原因,或者如果您共享異常,我也許可以為您提供幫助。

我看到的最常見的問題是:

  1. 與並發相關的元存儲問題

  2. 當您以$ hive --service yourhiveserver的身份啟動hive服務器並使其運行數天,然后運行您的代碼時,可能是您與服務器的代理連接,您將得到完全相同的錯誤。 如果重新連接到服務器,該錯誤將消失。 這僅是因為一段時間后wait_time到期並斷開連接。

  3. 端口特定錯誤

在啟動hive服務器之前,請確保為您的Hive服務器設置一個開放的端口並將其設置如下:

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

可能還有其他原因,但是最好的選擇是檢查配置單元日志中的調用堆棧以找出根本原因並解決問題。

暫無
暫無

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

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