java - hive JDBC ThriftHive$Client.sendBase

标签 java jakarta-ee hadoop hive

我在 Hadoop/hive 上工作。我已经安装了 hadoop 和 hive,它们在命令提示符下运行良好。我还创建了 hive 的 MySQL 元存储。我在 hive-site.xml 文件中定义了 HIVE-DB 数据库名称。同名数据库在 MySQL 中可用> HIVE-DB 。但是在 hive 命令提示符上创建的表在 mysql 命令提示符中不可用。 当我想创建一个配置单元 jdbc 连接然后得到以下错误..首先是我的程序创建一个 jdbc 连接

package aa;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Main 
{
     private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
    public static void main(String args[])
    {
        try {

              Class.forName(driverName);
            } 
        catch (ClassNotFoundException e) 
        {
              // TODO Auto-generated catch block
              e.printStackTrace();
              System.exit(1);
        }
        try
        {
            Connection con = DriverManager.getConnection("jdbc:hive://localhost:10001/default", "", "");
            Statement stmt = con.createStatement();
            String tableName = "recordssss";
            stmt.executeQuery("create table"+tableName+"(id int,name string)");

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}


and then following error is display... because i have start hive as a hive server i.e

**$HIVE_HOME/bin/hive --service hiveserver -p 10001**

xception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hive.service.ThriftHive$Client.sendBase(Ljava/lang/String;Lorg/apache/thrift/TBase;)V
    at org.apache.hadoop.hive.service.ThriftHive$Client.send_execute(ThriftHive.java:110)
    at org.apache.hadoop.hive.service.ThriftHive$Client.execute(ThriftHive.java:102)
    at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:187)
    at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:127)
    at org.apache.hadoop.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:126)
    at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:121)
    at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
    at java.sql.DriverManager.getConnection(DriverManager.java:620)
    at java.sql.DriverManager.getConnection(DriverManager.java:200)
    at aa.Main.main(Main.java:25)


    enter code here

so pls help me i have describe the problem to you so pls dear anyone help me

最佳答案

您似乎没有在客户端代码中使用适当的库。您使用的 jar 可能是错误的版本。请检查一次。

关于java - hive JDBC ThriftHive$Client.sendBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739020/

相关文章:

hadoop - Apache Tez 架构说明

java - twitter API 获取 id 之后的推文

hadoop - Hortonworks Hive用户名密码配置

java - 基于TTL(生存时间)驱逐的优先级队列

java - 将用户名和页面名称保留到数据库

jakarta-ee - WildFly - HornetQ 连接超时和性能问题

java - Hibernate多对多数据检索

java - Hadoop无法执行命令hdfs namenode -format

java - 如何在 Eclipse 中更改 Android 的 Java 构建路径?

java - 错误=无法找到 : ComponentInfo{ } 的检测信息