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