SW-PRODUCT/개발

구닥다리 chd4.3.0에서 hive에 jdbc로 접속하기

굴돌 2015. 12. 31. 11:33


1. hive 0.10.0-cdh4.3.0은 hive 0.11.0 이상 버전과 더 비슷한듯?

hive 0.10.0은 원래 hiveserver2를 지원하지 않는데

hive-0.10.0-chd4.3.0 버전은 hiveserver2를 지원한데. 이떄문에 한참 해맴..hive 0.10.0 기준으로 해결하려 해서..;;

  일단 pom.xml에서 0.10.0이 아니라 0.10.0-cdh4.3.0을 지정해야 한다는것 뿐만 아니라

  hadoop-core도 사라지고 hadoop-common으로 대체되면서 JobConf 같이 hadoop-core에 있다 hadoop-common에서 빠진 클래스가 어디 소식인지 찾는데 한참 해맸다... 간만에 하니 dependency 문제라는걸 바로 떠올리지도 못했고..;;


2. kerberos 인증을... keytab 기준으로 하는 환경이라서 고생했다.

정확한 원인인지 파악은 덜 됐으나, MIT Kerberos 일정버전 이후로는 Java에서 쉘에 생성된 티겟에 접근 못한다는 얘기가 있다.

문제는 난 kerberos용 비번을 들어본적도 없다..;; 물어보면 될 수도 있겠으나... 있는 keytab 파일로 어찌저찌 하려다보니 시간이 많이 걸렸음... 한줄만 추가해주면 되는것을 ㅠ.ㅠ





h2. (/) local mac에서 접속 성공!

* 기본 샘플코드 : https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-UsingJDBC

* keytab 파일을 위한 설정 추가.

  {code}

        UserGroupInformation.loginUserFromKeytab("daumapp/client@DW.HADOOP", ${keytab.file.path});

  {code}

  출처: http://www-304.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.admin.doc/doc/kerberos_hive.html

* dependency 수정.

{code}

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <hadoop.version>2.0.0-cdh4.3.0</hadoop.version>

        <hive.version>0.10.0-cdh4.3.0</hive.version>

    </properties>


    <dependencies>

         <dependency>

            <groupId>org.apache.hadoop</groupId>

            <artifactId>hadoop-common</artifactId>

            <version>${hadoop.version}</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hadoop</groupId>

            <artifactId>hadoop-mapreduce-client-core</artifactId>

            <version>${hadoop.version}</version>

        </dependency>

        <dependency>

            <groupId>org.apache.hive</groupId>

            <artifactId>hive-jdbc</artifactId>

            <version>${hive.version}</version>

        </dependency>

        <dependency>

            <groupId>commons-configuration</groupId>

            <artifactId>commons-configuration</artifactId>

            <version>1.6</version>

        </dependency>

    </dependencies>

{code}


h2. mybatis 연동?!

* http://odysseymoon.tistory.com/36

* hive 0.8.0 기준이라서 resultSet의 column type을 못가져오는 문제로 plugin을 만들어 쓰는데... 0.10.0-cdh4.3.0에서는 어떨런지 모르겠다...