Apache-tajo-integration-with-hbase

提供:Dev Guides
移動先:案内検索

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 originテーブル名を設定します。 外部テーブルを作成する場合、テーブルはHBaseに存在する必要があります。
  • -キーはHBase行キーを指します。 列エントリの数は、Tajoテーブルの列の数と等しくする必要があります。
  • hbase.zookeeper.quorum -ズーキーパークォーラムアドレスを設定します。
  • hbase.zookeeper.property.clientPort -zookeeperクライアントポートを設定します。

問い合わせ

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>/';

ここで、Location pathフィールドは、zookeeperクライアントのポートIDを設定します。 ポートを設定しない場合、Tajoはhbase-site.xmlファイルのプロパティを参照します。

HBaseでテーブルを作成する

次のクエリに示すように、「hbase shell」コマンドを使用して、HBaseインタラクティブシェルを起動できます。

問い合わせ

/bin/hbase shell

結果

上記のクエリは、次の結果を生成します。

hbase(main):001:0>

HBaseをクエリする手順

HBaseを照会するには、次の手順を完了する必要があります-

  • ステップ1 *-次のコマンドをHBaseシェルにパイプして、「チュートリアル」テーブルを作成します。

問い合わせ

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'
  • ステップ2 *-次に、hbaseシェルで次のコマンドを発行して、データをテーブルにロードします。
main):001:0> cat ../hbase/hbase-students.txt | bin/hbase shell
  • ステップ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
  • ステップ4 *-テーブルから結果を取得するには、次のクエリを使用します-
  • 問い合わせ *
default> select* from students

結果

上記のクエリは、次の結果を取得します-

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