개요
회사에서 hive에 커버로스를 적용할 일이 생겼다. 이때 필요한 내용을 찾아 본 뒤 정리해둔다.
전제조건
- 필자는 hive를 spring 기반 executable jar를 띄워 스프링 로드 후 hive 스크립트를 코드를 통해 직접 실행하는 구조를 지니고 있다. 따라서 spring bean으로 hive datasource를 생성하여 사용한다.
cdh5.14.2
,hive2 server
,hive-jdbc 1.1.0
,spring4
환경이다.- 커버로스 인증은 키탭을 이용한다.
코드
핵심 코드는 아래와 같다.
키탭, principle, 하이브 주소를 지정한다.
@Bean
public SimpleDriverDataSource hiveDataSource() {
Properties properties = new Properties();
properties.setProperty("hive.server2.authentication", "KERBEROS");
properties.setProperty("hive.server2.authentication.kerberos.keytab", "/keytabs/hadoop-kwangsiklee-common.keytab");
HiveConfSupportHiveDriver driver = hiveConfSupportHiveDriver();
driver.setProperties(properties);
SimpleDriverDataSource datasource = new SimpleDriverDataSource(driver, "jdbc:hive2://hive접속주소:10000/default;principal=hive/sample-hadoop.kwangsiklee.com@SAMPLE.HADOOP");
return datasource;
}
참고자료
- https://semode.tistory.com/66