HIVE JDBC ThriftHive $ Client.sendBase [英] HIVE JDBC ThriftHive$Client.sendBase

查看:275
本文介绍了HIVE JDBC ThriftHive $ Client.sendBase的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有Hadoop / hive的工作。我已经安装了hadoop和hive,它在命令提示符下运行良好。我还创建了一个hive的MySQL元存储。我已经在hive-site.xml文件中定义了HIVE-DB数据库名称。同名数据库可用于MySQL> HIVE-DB。但是,在命令提示符下创建的表在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自动生成的catch块
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));

$ b catch(例外e)
{
e.printStackTrace();
}
}
}


然后跟随错误显示...因为我已经开始配置单元作为配置单元服务器,即

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

线程main中的xception java.lang.NoSuchMethodError:org.apache.hadoop.hive.service V
在org.apache.hadoop.hive.service.ThriftHive $ Client.send_execute(ThriftHive.java:110)。$ Client.sendBase(Ljava / lang / String; Lorg / apache / thrift / TBase;
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: (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)


在这里输入代码

请帮助我我已经向你描述了这个问题,所以请亲爱的人帮我


解决方案

好像你没有在你的客户端代码中使用适当的库。您使用的罐子可能是错误的版本。请检查一次。

i Have work on Hadoop/hive. i have install hadoop and hive which is running fine on command prompt.i have also create a MySQL meta store of hive.I have define HIVE-DB database name in hive-site.xml file.The same name database is available in MySQL>HIVE-DB .but the table which is create on hive command prompt is not available in mysql command Prompt. And when i want to create a hive jdbc Connection then get following error..First it is my Program to create a jdbc connection

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

解决方案

It seems like you are not using appropriate library in your client code. The jars you are using might be of wrong versions. Please check those once.

这篇关于HIVE JDBC ThriftHive $ Client.sendBase的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆