【问题标题】:java.sql.SQLException: org.apache.thrift.transport.TTransportException in hive?java.sql.SQLException:配置单元中的 org.apache.thrift.transport.TTransportException?
【发布时间】:2015-05-05 14:44:16
【问题描述】:

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

为什么会抛出这个异常,我该如何修复它。?

【问题讨论】:

    标签: java hadoop hbase hive


    【解决方案1】:

    这是一个非常通用的错误消息,描述 hiveserver 出现问题并建议您查看 Hive 日志。如果您访问配置单元日志并找到异常调用堆栈,则可以找到根本原因,或者如果您共享异常,我可能会为您提供帮助。

    我见过的最常见的问题是:

    1. 与并发相关的元存储问题

    2. 当您以 $hive --service yourhiveserver 身份启动 hive 服务器并使其运行数天然后运行您的代码时,您的连接可能是代理到服务器,您将得到完全相同的错误。如果您重新连接到服务器,此错误将消失。这只是因为经过一段时间 wait_time 过期并发生断开连接。

    3. 端口特定错误

    请务必为您的 Hive 服务器设置一个开放端口,并在启动 hive 服务器之前将其设置如下:

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

    可能还有其他原因,但您最好的选择是检查 hive 日志中的调用堆栈以找出根本原因并解决问题。

    【讨论】:

    • 有任何参考资料可以帮助解决元存储并发相关问题吗?
    • 我也遇到了同样的错误。在我重新启动连接到 Hive DB 的应用程序后它消失了
    猜你喜欢
    • 2020-10-26
    • 2012-07-23
    • 1970-01-01
    • 2016-07-10
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多