ApacheTajo-HBaseとの統合
ApacheTajoは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 −Zookeeperクォーラムアドレスを設定します。
hbase.zookeeper.property.clientPort −zookeeperクライアントポートを設定します。
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>/';
ここで、[場所のパス]フィールドは、zookeeperクライアントのポートIDを設定します。ポートを設定しない場合、Tajoはhbase-site.xmlファイルのプロパティを参照します。
HBaseでテーブルを作成する
次のクエリに示すように、「hbaseshell」コマンドを使用して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