2014-10-07 7 views
4

Hortonwork 클러스터 (Linux)가 있고 원격 호스트에서 하이브로 데이터를로드하는 데 JDBC를 사용하려고합니다. 클러스터에서 로컬로 작업하기 위해 JDBC 연결을 얻으려고하므로 원격으로 시도하기 전에 올바른 결과를 얻었습니다.Jdbc Hive2 잘못된 URL 예외

하이브가 성공적으로 설치하고 난 아무 문제없이 직선을 통해 연결할 수 있습니다

/usr/lib/hive/bin/beeline 
Beeline version 0.13.0.2.1.4.0-632 by Apache Hive 
beeline> !connect jdbc:hive2://localhost:10000 
scan complete in 3ms 
Connecting to jdbc:hive2://localhost:10000 
Enter username for jdbc:hive2://localhost:10000: someuser 
Enter password for jdbc:hive2://localhost:10000: ****** 
Connected to: Apache Hive (version 0.13.0.2.1.4.0-632) 
Driver: Hive JDBC (version 0.13.0.2.1.4.0-632) 
Transaction isolation: TRANSACTION_REPEATABLE_READ 

내 자바 클래스가 보이는 같은 :

public class HiveConn { 
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; 
public static void main(String[] args) throws SQLException { 
HiveConn myJob = new HiveConn(); 
myJob.execute(); 
} 
public void execute() throws SQLException { 
//mLogger.info("Start HiveJob"); 
System.out.println("Start HiveJob"); 
try { 
Class.forName(driverName); 
} catch (ClassNotFoundException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
System.exit(1); 
} 
Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000", "", ""); 
//Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000", "root", ""); 
//Statement stmt = con.createStatement(); 
String sql = "SHOW TABLES"; 
System.out.println("Running: " + sql); 
System.out.println("HiveJob executed!"); 
} 
} 

예외 :

Start HiveJob 
    Exception in thread "main" java.sql.SQLException: Invalid URL: jdbc:hive2://localhost:10000/default 
     at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:86) 
     at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:106) 
     at java.sql.DriverManager.getConnection(DriverManager.java:571) 
     at java.sql.DriverManager.getConnection(DriverManager.java:215) 
     at HiveConn.execute(HiveConn.java:29) 
     at HiveConn.main(HiveConn.java:17) 

I root로 로그인 했으므로 권한 문제가 없어야합니다. 나는

jdbc:hive2://servername.company.com:10000 

and also adding "default" and user-name in every possible combo to the URL like: 

jdbc:hive2://localhost:10000/default "user" 

I have tried to add authentication NOSASL to the hive-site.xml and adding it to the URL like: 

jdbc:hive2://servername.company.com:10000;auth=NoSasl 

내 IP 테이블 설정의 모습처럼 전체 호스트 이름을 포함하여 모든 가능한 URL 콤보를 시도 : 나는 더 많은 노력 모르는

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6 
ip.address servername.company.com 
ip.address servername.company.com 
ip.address servername.company.com 
ip.address servername.company.com 

. 아마도 내가 어리석은 뭔가 일 것입니다.

답변

3

죄송합니다. 나는 잘못된 드라이버 명을 사용하고 올바른은 다음과 같아야합니다 의심 바보 같은 실수로

private static String driverName = "org.apache.hive.jdbc.HiveDriver"; 

...