天天看點

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

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

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

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的分布式存儲架構。

Hadoop大資料平台實戰(03):Linux實戰安裝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           
Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

檢視安裝版本 Java -version

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

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           
Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

測試登入,不需要密碼:

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           
Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

等待下載下傳完畢,解壓,并且移動到安裝目錄,指令如下:

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/           
Hadoop大資料平台實戰(03):Linux實戰安裝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指令檢查是否正常運作。

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

這裡已經正常啟動HBase資料庫。

也可以使用status version whoami三個指令 檢視狀态、版本和賬号資訊

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

12、測試HBase資料庫,建立表,并儲存資料

create 'test', 'cf'
put 'test', 'row1', 'cf:name', 'hadoop'
put 'test', 'row1', 'cf:name', 'hbase'
put 'test', 'row1', 'cf:name', 'frankxulei'           
Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

建立一個表test,列族cf,并且儲存3條資料。

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

讀取所有資料

scan 'test'

scan 'users'

擷取單個值

get 'test', 'row1'

Hadoop大資料平台實戰(03):Linux實戰安裝HBase,并儲存資料

後續我們在講解Hadoop叢集架構,HBase底層原理與算法,存儲模型,叢集搭建。

參考網站:

http://hbase.apache.org/ https://en.wikipedia.org/wiki/Apache_HBase