配置单元中的 java.sql.SQLException : org. apache.thrift.transport.TTransportException?

标签 java hadoop hbase 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 启动配置单元服务器并使其运行数天然后运行您的代码时,您的连接可能是代理服务器,您将得到完全相同的错误。如果您重新连接到服务器,此错误将消失。这只是因为一段时间后 wait_time 过期并发生断开连接。

  3. 端口特定错误

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

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

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

关于配置单元中的 java.sql.SQLException : org. apache.thrift.transport.TTransportException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828562/

相关文章:

java - 如何将枚举绑定(bind)到路由静态参数

scala - 带URI的Flink,Kafka和Zookeeper

hadoop - HBase批量加载异常

sql - 试图在 HIVE 中找到 select 语句的最大值

hadoop - Apache HIVE 中的表定义问题

hadoop - 如何连接到hbase?

bash - Hbase 命令在通过 crontab 执行的脚本中不起作用

java - 如何在 Java 中使用正则表达式匹配给定字符串的开头或结尾

javax.imageio.ImageReader 一遍又一遍地加载相同的图像

java - 如何返回对返回变量的只读访问权限或对其的写入访问权限?