Apache Tajo-HBase와 통합

Apache Tajo는 HBase 통합을 지원합니다. 이를 통해 Tajo의 HBase 테이블에 액세스 할 수 있습니다. HBase는 Hadoop 파일 시스템 위에 구축 된 분산 열 지향 데이터베이스입니다. Hadoop 파일 시스템의 데이터에 대한 임의의 실시간 읽기 / 쓰기 액세스를 제공하는 Hadoop 에코 시스템의 일부입니다. HBase 통합을 구성하려면 다음 단계가 필요합니다.

환경 변수 설정

“conf / tajo-env.sh”파일에 다음 변경 사항을 추가합니다.

$ vi conf/tajo-env.sh  
# HBase home directory. It is opitional but is required mandatorily to use HBase. 
# export HBASE_HOME = path/to/HBase

HBase 경로를 포함하면 Tajo는 HBase 라이브러리 파일을 클래스 경로로 설정합니다.

외부 테이블 생성

다음 구문을 사용하여 외부 테이블을 만듭니다-

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <table_name> [(<column_name> <data_type>, ... )] 
USING hbase WITH ('table' = '<hbase_table_name>' 
, 'columns' = ':key,<column_family_name>:<qualifier_name>, ...' 
, 'hbase.zookeeper.quorum' = '<zookeeper_address>' 
, 'hbase.zookeeper.property.clientPort' = '<zookeeper_client_port>') 
[LOCATION 'hbase:zk://<hostname>:<port>/'] ;

HBase 테이블에 액세스하려면 테이블 스페이스 위치를 구성해야합니다.

여기,

  • Table− hbase 원본 테이블 이름을 설정합니다. 외부 테이블을 생성하려면 테이블이 HBase에 있어야합니다.

  • Columns− 키는 HBase 행 키를 나타냅니다. 열 항목의 수는 Tajo 테이블 열의 수와 같아야합니다.

  • hbase.zookeeper.quorum − 사육사 쿼럼 주소를 설정합니다.

  • hbase.zookeeper.property.clientPort − 사육사 클라이언트 포트를 설정합니다.

Query

CREATE EXTERNAL TABLE students (rowkey text,id int,name text) 
USING hbase WITH ('table' = 'students', 'columns' = ':key,info:id,content:name') 
LOCATION 'hbase:zk://<hostname>:<port>/';

여기에서 위치 경로 필드는 사육사 클라이언트 포트 ID를 설정합니다. 포트를 설정하지 않으면 Tajo는 hbase-site.xml 파일의 속성을 참조합니다.

HBase에서 테이블 만들기

다음 쿼리에 표시된대로 "hbase shell"명령을 사용하여 HBase 대화 형 셸을 시작할 수 있습니다.

Query

/bin/hbase shell

Result

위의 쿼리는 다음 결과를 생성합니다.

hbase(main):001:0>

HBase를 쿼리하는 단계

HBase를 쿼리하려면 다음 단계를 완료해야합니다.

Step 1 − 다음 명령을 HBase 셸에 파이프하여 "튜토리얼"테이블을 생성합니다.

Query

hbase(main):001:0> create ‘students’,{NAME => ’info’},{NAME => ’content’} 
put 'students', ‘row-01', 'content:name', 'Adam' 
put 'students', ‘row-01', 'info:id', '001' 
put 'students', ‘row-02', 'content:name', 'Amit' 
put 'students', ‘row-02', 'info:id', '002' 
put 'students', ‘row-03', 'content:name', 'Bob' 
put 'students', ‘row-03', 'info:id', ‘003'

Step 2 − 이제 hbase 셸에서 다음 명령을 실행하여 데이터를 테이블에로드합니다.

main):001:0> cat ../hbase/hbase-students.txt | bin/hbase shell

Step 3 − 이제 Tajo 셸로 돌아가서 다음 명령을 실행하여 테이블의 메타 데이터를 확인합니다. −

default> \d students;  

table name: default.students 
table path: 
store type: HBASE 
number of rows: unknown 
volume: 0 B 
Options: 
   'columns' = ':key,info:id,content:name' 
   'table' = 'students'  

schema: 
rowkey  TEXT 
id  INT4 
name TEXT

Step 4 − 테이블에서 결과를 가져 오려면 다음 쿼리를 사용하세요 −

Query

default> select * from students

Result

위의 쿼리는 다음 결과를 가져옵니다-

rowkey,  id,  name 
------------------------------- 
row-01,  001,  Adam 
row-02,  002,  Amit 
row-03   003,  Bob