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
. 아마도 내가 어리석은 뭔가 일 것입니다.