기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Hive를 사용하여 HBase 테이블에 액세스
HBase 및 Apache Hive는 긴밀하게 통합되어에 저장된 데이터에서 직접 대량 병렬 처리 워크로드를 실행할 수 있습니다HBase. 에서 Hive를 사용하려면 일반적으로 동일한 클러스터에서 Hive를 시작할 HBase수 있습니다. 그러나 별도의 클러스터HBase에서 Hive 및를 시작할 수 있습니다. 서로 다른 클러스터에서 HBase 및 Hive를 별도로 실행하면 각 애플리케이션이 클러스터 리소스를 더 효율적으로 사용할 수 있으므로 성능이 향상될 수 있습니다.
다음 절차에서는 Hive를 사용하여 클러스터HBase에서에 연결하는 방법을 보여줍니다.
참고
Hive 클러스터는 단일 HBase 클러스터에만 연결할 수 있습니다.
Hive를에 연결하려면 HBase
-
Hive 및가 HBase 설치된 별도의 클러스터를 생성하거나 HBase 및 Hive가 모두 설치된 단일 클러스터를 생성합니다.
-
별도의 클러스터를 사용하는 경우 보안 그룹을 수정하여 HBase 및 Hive 포트가이 두 기본 노드 간에 열리도록 합니다.
-
SSH를 사용하여 Hive가 설치된 클러스터의 기본 노드에 연결합니다. 자세한 내용은 Amazon EMR 관리 안내서의를 사용하여 기본 노드에 연결을 SSH 참조하세요.
-
다음 명령을 사용하여 Hive 셸을 시작하십시오.
hive
-
(선택 사항) 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
; -
원하는 대로 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