Hive JDBC 인터페이스

Hive JDBC 인터페이스 (JDBC Driver)

Hive의 JDBC 인터페이스는 쿼리 실행과 결과 조회를 지원해요. Pentaho 리포트 디자이너나 SQuirrel SQL 클라이언트 같은 도구에서 Hive에 접속하는 방법을 안내해요.

출처: 문서

본문

현재 Hive의 JDBC 인터페이스는 쿼리 실행과 결과 조회만 지원합니다. 메타데이터 호출 중 일부 작은 부분 집합만 지원됩니다.

JDBC 인터페이스를 어떻게 사용하는지 보려면 샘플 코드를 참고하세요.

Pentaho 통합

  1. pentaho 웹사이트에서 pentaho report designer를 다운로드합니다.
  2. report-designer.sh를 아래 코드로 덮어씁니다.
#!/bin/sh

HADOOP_CORE=$(ls $HADOOP_HOME/hadoop-*-core.jar)
CLASSPATH=.:$HADOOP_CORE:$HIVE_HOME/conf

for i in ${HIVE_HOME}/lib/*.jar ; do
  CLASSPATH=$CLASSPATH:$i
done

CLASSPATH=$CLASSPATH:launcher.jar

echo java -XX:MaxPermSize=512m -cp $CLASSPATH -jar launcher.jar
java -XX:MaxPermSize=512m -cp $CLASSPATH org.pentaho.commons.launcher.Launcher
  1. HiveServer의 설명에 따라 hive 서버를 빌드하고 시작합니다.
  2. Hive JDBC 클라이언트 코드를 컴파일·실행해 데이터를 로드합니다(아직 report designer에서 하는 방법은 알 수 없음). 데이터 로드는 샘플 코드를 참고하세요.
  3. 리포트 디자이너를 실행합니다(2단계 기록).
$ sh reporter-designer.sh
  1. 'Report Design Wizard'를 선택합니다.
  2. 템플릿을 선택합니다 - 예: 'fall template' - 다음.
  3. 새 데이터 소스를 만듭니다 - JDBC(사용자 정의), Generic database.
  4. Hive JDBC 매개변수를 제공합니다. 연결 이름을 'hive'로 지정합니다.
   URL: jdbc:hive://localhost:10000/default
   Driver name: org.apache.hadoop.hive.jdbc.HiveDriver
   Username and password are empty
  1. 'Test'를 클릭합니다. 테스트가 성공해야 합니다.
  2. 쿼리를 편집합니다: 'Sample Query'를 선택하고, edit query를 클릭하고, 'hive' 연결을 클릭합니다. 새 쿼리를 만듭니다. testHiveDriverTable 테이블에 쿼리를 작성합니다. 예: select * from testHiveDriverTable. 다음을 클릭합니다.
  3. 레이아웃 단계: Group Items By에 PageOfPages를 추가합니다. Selected Items에 key와 value를 추가합니다. 다음을 클릭합니다. 그리고 Finish.
  4. Report header를 'hive-pentaho-report'로 변경합니다. header의 타입을 'html'로 변경합니다.
  5. 리포트를 실행하고 pdf를 생성합니다. 여기 첨부된 리포트와 비슷한 결과를 얻어야 합니다.

SQuirrel SQL Client 통합

  1. SQuirrel SQL 웹사이트에서 SQuirrel SQL Client를 다운로드·설치·시작합니다.

  2. Hive JDBC 드라이버를 등록하려면 'Drivers -> New Driver…'를 선택합니다.

    1. 드라이버 이름과 예제 URL을 입력합니다:
Name: Hive
   Example URL: jdbc:hive://localhost:10000/default
  1. 로컬 Hive와 Hadoop 배포판의 다음 jars를 추가하려면 'Extra Class Path -> Add'를 선택합니다.
   HIVE_HOME/build/dist/lib/*.jar
   HADOOP_HOME/hadoop-*-core.jar
  1. 'List Drivers'를 선택합니다. 그러면 SQuirrel이 jars에서 JDBC 드라이버를 파싱하며 몇 초 걸릴 수 있습니다. 'Class Name' 입력 상자에서 Hive 드라이버를 선택합니다:
   org.apache.hadoop.hive.jdbc.HiveDriver
  1. 'OK'를 클릭해 드라이버 등록을 완료합니다.
  2. Hive 서버에 대한 연결 별칭을 만들려면 'Aliases -> Add Alias…'를 선택합니다.
    1. 'Name' 입력 상자에 연결 별칭 이름을 지정합니다.
    2. 'Driver' 드롭다운에서 Hive 드라이버를 선택합니다.
    3. 예제 URL을 필요에 따라 Hive 서버를 가리키도록 수정합니다.
    4. 'User Name'과 'Password'는 비워두고 'OK'를 클릭해 연결 별칭을 저장합니다.
  3. Hive 서버에 연결하려면 Hive 별칭을 더블클릭하고 'Connect'를 클릭합니다.

연결이 수립되면 로그 콘솔에 오류가 표시되고 드라이버가 JDBC 3.0과 호환되지 않는다는 경고가 나올 수 있습니다. 이 경고들은 아직 구현되지 않은 JDBC 메타데이터 API 부분 때문이며 안전하게 무시할 수 있습니다. 연결을 테스트하려면 콘솔에 SHOW TABLES 를 입력하고 실행 아이콘을 클릭하세요.

또한 쿼리 실행 중에는 'Cancel' 버튼 지원이 아직 제공되지 않습니다.

더 알아보기 (Learn more)

JDBC를 통해 Hive에 접속하는 자세한 클라이언트 사용 방법은 Hive 클라이언트 문서를 참고하세요. 서버 설정은 HiveServer 문서를 확인해 보세요.