HBase使用客戶端API動態建立Hbase資料表並在Hbase下匯出執行
----首先感謝網路能夠給我提供一個開放的學習平臺,如果沒有網上的技術愛好者提供的幫助,很難學好hbase。
一、hbase簡介
官方:HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。
自己的理解:hbase其實就是一個在hadoop基礎上的一個資料庫,執行在HDFS檔案系統之上,特點是一個基於記憶體面向列的資料庫。
hbase架構圖
二、Hbase資料模型
1、概念圖
基於Google的bigtable模型(key-value對)
2、邏輯檢視
網上查了一些資料,舉一個例子來說說我的理解吧。
row key | data |
wangsan |
info:{'height:178','sex:boy'} message:{'tpl:18363636363','email:1@qq.com'} |
lisi |
info:{'height:176','sex:gril'} message:{'tpl:18363636364','email:2@qq.com'} |
3、hbase的key和列族
與nosql資料庫們一樣,row key是用來檢索記錄的主鍵。
1)每行都有row key。
2)每條記錄分隔成列族集合。
3)每個列族由若干列組成。
三、API操作
建立一個表test,首先匯入jar包,在hive的安裝目錄下的lib中去找就可以了。
public static void main(String[] args) throws MasterNotRunningException, ZooKeeperConnectionException, IOException { // TODO Auto-generated method stub Configuration con = HBaseConfiguration.create(); HBaseAdmin admin = new HBaseAdmin(con); TableName name = TableName.valueOf("test"); HTableDescriptor descriptor = new HTableDescriptor(name); HColumnDescriptor columnDescriptor = new HColumnDescriptor("data"); descriptor.addFamily(columnDescriptor); admin.createTable(descriptor); System.out.println("create ok"); }
將程式匯出成jar檔案,放到Linux系統中的新建目錄/opt/bin/hbase中吧。
首先:執行下面兩部操作。
執行jar檔案。
test表建立成功。
hbase shell指令。
執行list指令,就可以看到hbase下面新建號的test表。