개요

회사에서 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