Apache Tajo - บูรณาการกับ HBase

Apache Tajo รองรับการรวม HBase สิ่งนี้ทำให้เราสามารถเข้าถึงตาราง HBase ใน Tajo HBase เป็นฐานข้อมูลเชิงคอลัมน์แบบกระจายที่สร้างขึ้นที่ด้านบนของระบบไฟล์ Hadoop เป็นส่วนหนึ่งของระบบนิเวศ Hadoop ที่ให้การเข้าถึงข้อมูลแบบสุ่มอ่าน / เขียนแบบเรียลไทม์ใน Hadoop File System ขั้นตอนต่อไปนี้จำเป็นเพื่อกำหนดค่าการรวม 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 เป็น classpath

สร้างตารางภายนอก

สร้างตารางภายนอกโดยใช้ไวยากรณ์ต่อไปนี้ -

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 - ตั้งค่าพอร์ตไคลเอ็นต์ 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>/';

ที่นี่ฟิลด์ Location path จะตั้งค่า id พอร์ตไคลเอ็นต์ zookeeper หากคุณไม่ได้ตั้งค่าพอร์ต Tajo จะอ้างถึงคุณสมบัติของไฟล์ hbase-site.xml

สร้างตารางใน HBase

คุณสามารถเริ่มเชลล์โต้ตอบ HBase โดยใช้คำสั่ง“ 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