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

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

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

HBase 및 Apache Hive는 긴밀하게 통합되어에 저장된 데이터에서 직접 대량 병렬 처리 워크로드를 실행할 수 있습니다HBase. 에서 Hive를 사용하려면 일반적으로 동일한 클러스터에서 Hive를 시작할 HBase수 있습니다. 그러나 별도의 클러스터HBase에서 Hive 및를 시작할 수 있습니다. 서로 다른 클러스터에서 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 클러스터에 연결합니다. 다음 예제에서 public-DNS-name는 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 ;

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