HBase教程

HBase教程

(注:安裝服務器和需連接hbase的服務器的hosts文件的配置 192.168.6  Demo01)

Hbase簡介

HBase是建立在Hadoop文件系統之上的分佈式面向列的數據庫。是橫向擴展的。可以提供快速隨機訪問海量結構化數據。它利用了Hadoop的文件系統(HDFS)提供的容錯能力。可以直接或通過HBase的存儲HDFS數據。使用HBase在HDFS讀取消費/隨機訪問數據。 HBase在Hadoop的文件系統之上,並提供了讀寫訪問。

HBase 和 HDFS

HDFS

HBase

HDFS是適於存儲大容量文件的分佈式文件系統。

HBase是建立在HDFS之上的數據庫。

HDFS不支持快速單獨記錄查找。

HBase提供在較大的錶快速查找

它提供了高延遲批量處理;沒有批處理概念。

它提供了數十億條記錄低延遲訪問單個行記錄(隨機存取)。

它提供的數據只能順序訪問。

HBase內部使用哈希表和提供隨機接入,並且其存儲索引,可將在HDFS文件中的數據進行快速查找。

HBase的存儲機制

在一個HBase:

· 表是行的集合。

· 行是列族的集合。

· 列族是列的集合。

· 列是鍵值對的集合。

Rowide

Column Family

Column Family

Column Family

Column Family

 

col1

col2

col3

col1

col2

col3

col1

col2

col3

col1

col2

col3

1

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

HBase架構

HBase有三個主要組成部分:客戶端庫,主服務器和區域服務器。區域服務器可以按要求添加或刪除。

主服務器:

· 分配區域給區域服務器並在Apache ZooKeeper的幫助下完成這個任務。

· 處理跨區域的服務器區域的負載均衡。它卸載繁忙的服務器和轉移區域較少佔用的服務器。

· 通過判定負載均衡以維護集羣的狀態。

· 負責模式變化和其他元數據操作,如創建表和列。

區域:只不過是表被拆分,並分佈在區域服務器。

區域服務器:

· 與客戶端進行通信並處理數據相關的操作。

· 句柄讀寫的所有地區的請求。

· 由以下的區域大小的閾值決定的區域的大小。

存儲包含內存存儲和HFiles。memstore就像一個高速緩存。在這裏開始進入了HBase存儲。數據被傳送並保存在Hfiles作爲塊並且memstore刷新。

Hbase安裝

 單機模式,模擬分佈式模式,以及全分佈式模式

全分佈式模式安裝

參考:http://blog.csdn.net/chabale/article/details/8808620

 hbase-env.sh 修改JAVA_HOME變量

hbase-site.xml

<property>

 <name>hbase.cluster.distributed</name>

  <value>true</value>

  </property>

  <property>

   <name>>hbase.rootdir</name>

    <value>hdfs://Demo01:9000/hbase</value>

   </property>

   <property>

     <name>hbase.master</name>

     <value>Demo01:60000</value>

   </property>

   <property>

      <name>>hbase.zookeeper.quorum</name>

      <value>Demo01</value>

    </property>

    <property>

      <name>>hbase.zookeeper.property.dataDir</name>

      <value>/home/slshop/data/zookeeper</value>

     </property>

 

修改conf下的regionservers文件

啓動

到hbase的bin目錄運行./hbase shell

 

Hive整合Hbase

作用:使hive可以讀取Hbase中的數據

 

HBase開發

Windows開發的hosts裏面設置hbase連接的zookeeper服務器的別名和ip

 

HBase數據結構設計

Saas平臺

1) 交易訂單 saas_trade_order

列族:order data、merchant data、pay data

創建shell:  create 'saas_trade_order','order data','merchant data','pay data'

列  :

 

所屬列族

order data

 

order_no

訂單號

trade_amt

交易金額

ip

Ip

trade_status

狀態 0:創建,1:成功,2:失敗,6:提交

log_date_time

日誌記錄時間

 

所屬列族

merchant data

 

merch_no

商戶號

merchant_name

商戶名稱

 

所屬列族

pay data

 

pay_time

交易時間

pay_order_no

支付訂單號

trade_summary

交易摘要

card_bank_name

支付渠道

pay_type

支付方式

trade_type

交易類別

notify_url

商戶返回地址

 

2) 結算saas_sett_record

列族:sett data、merchant data、bank data

創建shell:  create 'saas_sett_record','sett data','merchant data','bank data'

列  :

 

所屬列族

sett data

 

sett_order_no

訂單號

ip

Ip

sett_status

結算狀態 0:未處理  1:打款成功 2:打款失敗  3:處理中

sett_type

結算類型 0提現,1直連代付 2 申請代付

acc_status

賬務系統入賬狀態,0未入賬,1已入賬

sett_amt

結算金額

suc_time

成功時間

cr_time

創建時間

 

所屬列族

merchant data

 

merchant_no

商戶號

merchant_name

商戶名稱

merch_acc_date

商戶交易日期

merch_sett_no

商戶訂單號

 

所屬列族

bank data

 

bank_code

銀行卡編碼

bank_acc_no

銀行卡號

bank_acc_name

銀行卡戶名

bank_name

銀行卡開戶行名稱

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章