Apache HBase開源免費的Hadoop資料庫,使用Java開發的,是一個分布式,可擴充的NoSQL資料庫。本文會詳細介紹HBase原理、架構、新特性、Linux環境下的安裝,安裝模式,表建立,簡單的CRUD操作。

1、HBase資料庫介紹
HBase是開源NoSQL資料庫,主要用于大資料平台。受啟發于谷歌在2006年發表了一篇關于Big Table的論文。當我們需要對大資料進行随機,實時讀/寫通路時,可以使用Apache HBase。 HBase可以托管非常大的表 - 數十億行X百萬列,存儲大規模不規則的資料集 。
Apache HBase是一個開源的,分布式的,版本化的NoSQL非關系資料庫,模仿Google的Bigtable資料庫:Chang等人的結構化資料分布式存儲系統。 正如Bigtable利用Google檔案系統提供的分布式資料存儲一樣,Apache HBase在Hadoop和HDFS之上提供類似Bigtable的功能。
2、HBase新特性
1)線性和子產品化可擴充性。
2)嚴格一緻的讀寫操作。
3)自動分區,分表的自動和可配置分片
4)RegionServers之間的自動故障轉移支援。
5)友善的基類,用于使用Apache HBase表支援Hadoop MapReduce作業。
6)易于使用的Java API,用于用戶端通路。
7)阻止緩存和布隆過濾器以進行實時查詢。
8)查詢謂詞通過伺服器端過濾器下推
9)Thrift網關和REST-ful Web服務,支援XML,Protobuf和二進制資料編碼選項
10)可擴充的基于jruby(JIRB)的Shell用戶端
11)支援通過Hadoop名額子系統将名額導出到檔案或Ganglia; 或通過JMX
3、HBase發展曆史
谷歌在2006年發表了一篇關于Big Table的論文,
HBase最初是由Powerset公司開展的一個項目,因為需要處理大量資料以用于自然語言搜尋。 并在2006年底開始了HBase的開發。
2007年建立的HBase原型為Hadoop contrib,第一個可用的HBase在2007年釋出。
2008年,Hadoop成為Apache頂級項目,HBase成為其子項目。
此外,HBase 0.18,0.19于2008年10月釋出。
2010年,HBase成為Apache頂級項目。
HBase 0.92于2011年釋出。最新版本為0.96。
Facebook于2010年11月選擇使用HBase實施其新的消息傳遞平台,但在2018年從HBase遷移出來。
截至2017年2月,1.2.x系列是目前的穩定版本。
2019年目前最新的版本是2.1.4版本。
4、HBase架構
HBase采用分布式架構,底層使用HDFS存儲資料,支援區域RegionServer機制,自動分區擴充叢集,支援大資料擴充。存儲資料采用列族ColumnFamily模式。在HBase中,表被分成區域并由區域伺服器提供不同的存儲服務。 區域按列族垂直劃分為“存儲區”。 存儲區在HDFS中儲存為獨立的檔案。 下面顯示的是HBase的分布式存儲架構。
5、HBase下載下傳安裝
下面會詳細介紹單節點獨立HBase的設定。 獨立執行個體具有所有HBase守護程式 - Master,RegionServers和ZooKeeper - 在單個JVM中運作,持久儲存到本地檔案系統。
HBase的安裝通常分為3種模式:單機、僞分布式叢集、完全分布式叢集:
Standalone mode
Pseudo Distributed mode
Fully Distributed mode
HBase安裝要求先安裝JDK,我們使用JDK8版本。推薦使用Open JDK。如果你還不熟悉Hadoop安裝過程,可以閱讀這個文章:
https://yq.aliyun.com/articles/695959。
6、安裝JDK8
安裝開源的JDK8,免費,不會引起收費問題。
sudo apt install default-jdk
檢視安裝版本 Java -version
7、安裝SSH
sudo apt-get install openssh-server openssh-client
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
測試登入,不需要密碼:
ssh localhost
8、安裝HBase資料庫
下載下傳位址,我們選擇目前的穩定版本1.2.11版本。
http://hbase.apache.org/downloads.html。我們選擇清華大學的國内伺服器鏡像。
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/hbase-1.2.11/hbase-1.2.11-bin.tar.gz
等待下載下傳完畢,解壓,并且移動到安裝目錄,指令如下:
tar zxvf hbase-1.2.11-bin.tar.gz
tar xvzf hbase-1.2.11-bin.tar.gz
sudo mv hbase-1.2.11 /usr/local/hbase/
9、配置HBase環境變量
安裝完畢以後,可以配置HBase的環境變量。
使用vim ~/.bashrc編輯配置檔案,然後插入HBase環境變量
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
使其生效,source ~/.bashrc
10、HBase編輯配置檔案
為了單節點可以編輯配置檔案,路徑conf/hbase-site.xml,我們可以插入如下的參考配置:我們可以在配置檔案裡指定HBase和ZooKeeper存儲位置,也可以使用預設設定。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/frankxulei/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/frankxulei/zookeeper</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
11、啟動HBase資料庫
使用./start-hbase.sh啟動HBase資料庫。使用JPS指令檢查是否正常運作。
這裡已經正常啟動HBase資料庫。
也可以使用status version whoami三個指令 檢視狀态、版本和賬号資訊
12、測試HBase資料庫,建立表,并儲存資料
create 'test', 'cf'
put 'test', 'row1', 'cf:name', 'hadoop'
put 'test', 'row1', 'cf:name', 'hbase'
put 'test', 'row1', 'cf:name', 'frankxulei'
建立一個表test,列族cf,并且儲存3條資料。
讀取所有資料
scan 'test'
scan 'users'
擷取單個值
get 'test', 'row1'
後續我們在講解Hadoop叢集架構,HBase底層原理與算法,存儲模型,叢集搭建。
參考網站:
http://hbase.apache.org/ https://en.wikipedia.org/wiki/Apache_HBase