Hive를 사용하여 HBase 테이블 액세스 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Hive를 사용하여 HBase 테이블 액세스

HBase 및 Apache Hive는 긴밀하게 통합되어 있으므로 HBase에 저장된 데이터에서 대량 병렬 처리 워크로드를 직접 실행할 수 있습니다. Hive를 HBase와 함께 사용하려면 대개 같은 클러스터에서 이 둘을 실행합니다. 그러나 별도의 클러스터에서 Hive 및 HBase를 실행할 수 있습니다. 다른 클러스터에서 HBase 및 Hive를 실행하면 애플리케이션이 클러스터 리소스를 더 효율적으로 사용할 수 있기 때문에 성능이 개선될 수 있습니다.

다음 절차에서는 Hive를 사용하여 클러스터의 HBase에 연결하는 방법을 보여줍니다.

참고

Hive 클러스터는 단일 HBase 클러스터에만 연결할 수 있습니다.

Hive를 HBase에 연결하려면
  1. Hive 및 HBase가 설치된 별도의 클러스터를 생성하거나, HBase 및 Hive가 모두 설치된 단일 클러스터를 생성합니다.

  2. 별도의 클러스터를 사용하는 경우 두 기본 노드 사이에서 HBase 및 Hive 포트가 열리도록 보안 그룹을 수정하십시오.

  3. SSH를 사용하여 Hive가 설치된 클러스터의 기본 노드에 연결합니다. 자세한 내용은 Amazon EMR 관리 안내서에서 SSH를 사용하여 프라이머리 노드에 연결을 참조하세요.

  4. 다음 명령을 사용하여 Hive 셸을 시작하십시오.

    hive
  5. (선택 사항) HBase 및 Hive가 동일한 클러스터에 있는 경우 이를 수행할 필요가 없습니다. Hive 클러스터의 HBase 클라이언트를 데이터를 포함하고 있는 HBase 클러스터에 연결합니다. 다음 예에서는 퍼블릭 DNS 이름이 HBase 클러스터 기본 노드의 퍼블릭 DNS 이름으로 대체됩니다 (예:). ec2-50-19-76-67.compute-1.amazonaws.com

    set hbase.zookeeper.quorum=public-DNS-name;
  6. 필요에 따라 HBase 데이터에서 Hive 쿼리를 계속 실행하거나 다음 절차를 참조하십시오.

Hive에서 HBase 데이터에 액세스하려면
  • 이전 절차에서처럼 Hive 및 HBase 클러스터 간의 연결이 설정된 후 Hive에 외부 테이블을 만들어서 HBase 클러스터에 저장된 데이터에 액세스할 수 있습니다.

    다음 예제를 기본 노드의 Hive 프롬프트에서 실행하면 라는 HBase 테이블에 저장된 데이터를 참조하는 외부 테이블이 생성됩니다. inputTable 그러면 Hive 명령문의 inputTable을 참조하여 HBase 클러스터에 저장된 데이터를 쿼리 및 수정할 수 있습니다.

    set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com; create external table inputTable (key string, value string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1") tblproperties ("hbase.table.name" = "t1"); select count(key) from inputTable ;

HBase와 Hive를 결합한 고급 사용 사례 및 예제는 AWS 빅 데이터 블로그 게시물인 Amazon EMR에서 Apache HBase와 Apache Hive를 사용한 NoSQL과 대규모 병렬 분석 결합을 참조하십시오.