[HADOOP] jdbc와 kerberos keytab을 사용하여 하이브 메타 스토어에 액세스하기
HADOOPjdbc와 kerberos keytab을 사용하여 하이브 메타 스토어에 액세스하기
인증을 위해 Kerberos를 사용하도록 구성된 하이브 메타 스토어에 연결하려고합니다. 키 탭 파일을 사용하지 않을 때, 즉 프로그램이 인증 과정에서 비밀번호를 입력하라는 메시지를 표시 할 때 작동합니다. keytab을 사용하도록 구성을 변경할 때 다음 진술을 포함하는 긴 스택 추적을 얻습니다.
Additional pre-authentication required (25) - Need to use PA-ENC-TIMESTAMP/PA-PK-AS-REQ
누구든지 내가 뭘 잘못하고 있는지에 대한 조언을 해줄 수 있습니까?
내 문제의 맥락이 관련성이 있다면, 나는 mapreduce job에서 하이브 metastore에 접근하고 싶다. 물론 mapreduce job은 프롬프트에 응답 할 수 없다.
내 프로그램은 다음과 같습니다.
package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class HiveJDBC {
public static void main(String[] args) throws Exception {
Class.forName("org.apache.hive.jdbc.HiveDriver");
System.setProperty("java.security.auth.login.config","gss-jaas.conf");
System.setProperty("sun.security.jgss.debug","true");
System.setProperty("javax.security.auth.useSubjectCredsOnly","false");
System.setProperty("java.security.krb5.conf","krb5.conf");
Connection con = DriverManager.getConnection("jdbc:hive2://some.machine:10000/default;principal=hive/some.machine@MY_REALM");
// Do stuff with the connection
}
}
내 gss-jaas.conf 파일은 다음과 같습니다.
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
useTicketCache=false
principal="my-account@MY_REALM"
doNotPrompt=true
keyTab="path-to-my-keytab-file"
debug=true;
};
내 krb5.conf 파일은 다음과 같습니다.
[libdefaults]
default_realm = MY_REALM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
[realms]
MY_REALM = {
kdc = some.host:88
admin_server = another.host
}
다음 명령을 사용하여 ktutil 프로그램으로 생성 한 내 키탭 파일
ktutil: addent -password -p username@MY_REALM -k 1 -e aes256-cts
해결법
-
==============================
1.분명히이 오류는 ktutil 명령을 실행할 때 잘못된 암호화 유형을 사용하여 발생했습니다. 올바른 암호화로 전환 (나는 우리가 사용하는 언급하지 않습니다) 문제를 해결.
분명히이 오류는 ktutil 명령을 실행할 때 잘못된 암호화 유형을 사용하여 발생했습니다. 올바른 암호화로 전환 (나는 우리가 사용하는 언급하지 않습니다) 문제를 해결.
from https://stackoverflow.com/questions/21375372/accessing-hive-metastore-using-jdbc-with-kerberos-keytab by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop WordCount 예제가지도에서 멈춤 100 % 감소 0 % (0) | 2019.05.31 |
---|---|
[HADOOP] spark에서 textinputformat.record.delimiter 설정하기 (0) | 2019.05.31 |
[HADOOP] 프라임 숫자 생성을위한 병렬 알고리즘 (아마도 하둡의 맵 축소를 사용) (0) | 2019.05.31 |
[HADOOP] 실행중인 데이터 노드가 0 개이고이 작업에서 노드가 제외되지 않았습니다. (0) | 2019.05.31 |
[HADOOP] Hadoop / HDFS 파일 분할 정보 (0) | 2019.05.31 |