[HADOOP] HIVE JDBC ThriftHive $ Client.sendBase
HADOOPHIVE JDBC ThriftHive $ Client.sendBase
하둡 / 하이브 작업을하고 있습니다. 나는 명령 프롬프트에서 잘 실행되는 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
해결법
-
==============================
1.클라이언트 코드에서 적절한 라이브러리를 사용하지 않는 것 같습니다. 사용중인 항아리의 버전이 잘못되었을 수 있습니다. 한 번 확인하십시오.
클라이언트 코드에서 적절한 라이브러리를 사용하지 않는 것 같습니다. 사용중인 항아리의 버전이 잘못되었을 수 있습니다. 한 번 확인하십시오.
from https://stackoverflow.com/questions/17739020/hive-jdbc-thrifthiveclient-sendbase by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 별개의 커플 (쌍)을 필터링하는 방법 (0) | 2019.09.10 |
---|---|
[HADOOP] 하둡 버퍼링 vs 스트리밍 (0) | 2019.09.10 |
[HADOOP] 다른 하이브 스크립트에서 하이브 스크립트를 실행할 수 있습니까? (0) | 2019.09.10 |
[HADOOP] 집계를 사용하여 Hive에서 데이터를 피벗하는 방법 (0) | 2019.09.10 |
[HADOOP] 평균을 찾기 위해지도 / 직무 작업 작성에 도움이 필요합니다 (0) | 2019.09.10 |