jdbc 연결 테이프 kerbeos 인증 hiv 사용
12710 단어 빅 데이터
HADOOP_HOME or hadoop.home.dir are not set
이 문 제 는 코드 가 실행 되 는 환경 에 환경 변수 가 설정 되 어 있 지 않다 는 것 입 니 다. HADOOPHOME 또는 hadop. home. dir 를 지정 합 니 다. windoss 에서 실 행 될 경우 Liux 서버 에 원 격 으로 연결 할 경우 windos 에 환경 변 수 를 설정 해 야 합 니 다 $HADOOPHOME, path 에 Hadoop 의 bin 디 렉 터 리 를 추가 합 니 다.구체 적 인 해결 방법: HADOOPHOME and hadop. home. dir are unset 오류 로 인 한 window 환경 연결 디 버 깅 원 격 hadop 의 일련의 문제
그러나 제 코드 는 앞으로 windows 에서 실 행 될 것 이 아니 라 Linux 에서 실 행 될 것 입 니 다. Liux 에 CDH 플랫폼 이 설치 되 어 있 습 니 다.포 장 된 jar 를 명령 으로 실행 할 지, HADOOP 가 나타 날 지HOME or hadop. home. dir are not set, see / etc / profile 에서 hadop홈 관련 환경 변수
export HADOOP_HOME=/opt/cloudera/parcels/CDH/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR= ${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path= ${HADOOP_HOME}/lib/"
여기 HADOOPHOME, 자신의 운영 환경 에 따라 설정 하 세 요.
GSS initiate failed
일반적으로 이 오류 가 발생 하 는 것 은 jdbc url 에 문제 가 발생 하 는 것 입 니 다. kerbeos 가 없 는 jdbc 가 hive 를 연결 하 는 url 은?
jdbc:hive2://****:10000/database
* * * * 호스트 이름 또는 ip, database 는 라 이브 러 리 이름 입 니 다. 어떤 데이터 베 이 스 를 사용 할 지 선택 하지 않 으 면
jdbc:hive2://****:10000/
마지막 "/" 잃 어 버 리 면 안 돼!kerbeos 인증 이 있 는 url 은
jdbc:hive2://*****:10000/database;principal=hive/****@DWSP.COM
여기 있 는 두 곳 의 * * * 는 내용 을 똑 같이 유지 해 야 합 니 다. 또한 hive 가 있 는 서버 의 ip 또는 호스트 이름 이기 도 합 니 다. 그리고 principal = 뒤에 있 는 것 은 반드시 3 부분 이 hive, * * * *, DWSP. COM, 2 부분, 3 부분 은 자신의 상황 에 따라 바 뀌 어야 합 니 다.코드 는 자바 api 에서 클 러 스 터 hive 데이터 (kerbeos 인증) 를 읽 고 고 고 친 것 입 니 다.
import jodd.util.PropertiesUtil;
import org.apache.hadoop.security.UserGroupInformation;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class hiveUtil {
private static Properties props=null;
static {
props=new Properties();
InputStream in = PropertiesUtil.class.getClassLoader().getResourceAsStream("cdhConfig.properties");
try {
props.load(in);
} catch (IOException e) {
e.printStackTrace();
}
}
// private static String hiveJDBCurl = "jdbc:hive2://**:10000/;principal=hive/**@DWSP.COM";// hive +
private static void authKrb5() throws IOException {
// jvm krb5
System.setProperty("java.security.krb5.conf", (String) props.get("java.security.krb5.conf"));
// kerberos
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
// conf.setBoolean("hadoop.security.authorization", true);
conf.set("hadoop.security.authentication", (String) props.get("hadoop.security.authentication"));
// kerberos , keytab
UserGroupInformation.setConfiguration(conf);
try {
UserGroupInformation.loginUserFromKeytab(
(String) props.get("kerberos.principal"),
(String) props.get("kerberos.keytab"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static Connection getConn() throws ClassNotFoundException,
SQLException, IOException {
// kerberos
authKrb5();
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection conn = DriverManager.getConnection((String) props.get("hive.JDBC.url"));
return conn;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spark 의 2: 원리 소개Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.