1. 程式人生 > >HBASE的安裝配置啟動

HBASE的安裝配置啟動

一、HBase介紹

HBase是一個分散式的、面向列的開源資料庫,源於Google的一篇論文《BigTable:一個結構化資料的分散式儲存系統》。HBase以表的形式儲存資料,表有行和列組成,列劃分為若干個列族/列簇(column family)。欲瞭解HBase的官方資訊,請訪問[HBase官方網站](http://hbase.apache.org/)。
HBase的執行有三種模式:單機模式、偽分散式模式、分散式模式。
單機模式:在一臺計算機上安裝和使用HBase,不涉及資料的分散式儲存;偽分散式模式:在一臺計算機上模擬一個小的叢集;分散式模式:使用多臺計算機實現物理意義上的分散式儲存。這裡出於學習目的,我們只重點討論單機模式和偽分散式模式。

本教程執行環境是在Ubuntu-64位系統下,HBase版本為hbase-1.1.2,這是目前已經發行的已經編譯好的穩定的版本,帶有src的檔案是未編譯的版本,這裡我們只要下載bin版本hbase-1.1.2-bin.tar.gz就好了。hbase-1.1.2-bin.tar.gz.mds是用來校驗檔案hbase-1.1.2-bin.tar.gz是否完整,一般不需要校驗,如果您想要校驗可以參考Hadoop安裝教程 中對Hadoop的校驗。

  1. 如果讀者是使用虛擬機器方式安裝Ubuntu系統的使用者,請用虛擬機器中的Ubuntu自帶firefox瀏覽器訪問本指南,再點選下面的地址,才能把HBase檔案下載虛擬機器Ubuntu中。請不要使用Windows系統下的瀏覽器下載,檔案會被下載到Windows系統中,虛擬機器中的Ubuntu無法訪問外部Windows系統的檔案,造成不必要的麻煩。
  2. 如果讀者是使用雙系統方式安裝Ubuntu系統的使用者,請執行Ubuntu系統,在Ubuntu系統開啟firefox瀏覽器訪問本指南,再點選下面的地址下載(2016.5已經更新到1.2.1版本,最新版本向下相容,本教程同樣適用)
    HBase下載地址

二、安裝並配置HBase

1. HBase安裝

1.1 解壓安裝包hbase-1.1.2-bin.tar.gz至路徑 /usr/local,命令如下:

        sudo tar -zxvf ~/下載/hbase-1.1.2-bin.tar.gz -C /usr/local

1.2 將解壓的檔名hbase-1.1.2改為hbase,以方便使用,命令如下:

        sudo mv /usr/local/hbase-1.1.2 /usr/local/hbase 或者用軟連線  ln -s /usr/local/hbase-1.1.2  hbase

1.3 配置環境變數
將hbase下的bin目錄新增到path中,這樣,啟動hbase就無需到/usr/local/hbase目錄下,大大的方便了hbase的使用。教程下面的部分還是切換到了/usr/local/hbase目錄操作,有助於初學者理解執行過程,熟練之後可以不必切換。
編輯/etc/profile檔案

如果已經引入過PATH請在export PATH這行追加/usr/local/hbase/bin,這裡的“:”是分隔符。如下圖:
配置環境變數

編輯完成後,再執行source命令使上述配置在當前終端立即生效,命令如下:

source /etc/profile

擴充套件閱讀:  設定Linux環境變數的方法和區別1.4 新增HBase許可權

cd /usr/local

sudo chown -R hadoop ./hbase       #將hbase下的所有檔案的所有者改為hadoop,hadoop是當前使用者的使用者名稱。

1.5 檢視HBase版本,確定hbase安裝成功,命令如下:

    /usr/local/hbase/bin/hbase version

這裡輸入hbase version命令之前需要先設定HBASE依賴的java_home。 在HBASE-env.sh檔案設定。

命令執行後,輸出資訊截圖如下:

檢視版本

看到以上輸出訊息表示HBase已經安裝成功,接下來將分別進行HBase單機模式和偽分散式模式的配置。

2. HBase配置

HBase有三種執行模式,單機模式、偽分散式模式、分散式模式。作為學習,我們重點討論單機模式和偽分散式模式。以下先決條件很重要,比如沒有配置JAVA_HOME環境變數,就會報錯。– jdk– Hadoop( 單機模式不需要,偽分散式模式和分散式模式需要)– SSH

以上三者如果沒有安裝,請回到第二章的指南參考如何安裝。

2.1單機模式配置

1. 配置/usr/local/hbase/conf/hbase-env.sh 。配置JAVA環境變數,並新增配置HBASE_MANAGES_ZK為true,用vi命令開啟並編輯hbase-env.sh,命令如下:

vi /usr/local/hbase/conf/hbase-env.sh

配置JAVA環境變數,jdk的安裝目錄預設是 /usr/lib/jvm/java-1.7.0-openjdk, 則JAVA _HOME =/usr/lib/jvm/java-7-openjdk-amd64,其中java-1.7.0-openjdk是你的jdk版本;配置HBASE_MANAGES_ZK為true,表示由hbase自己管理zookeeper,不需要單獨的zookeeper。hbase-env.sh中本來就存在這些變數的配置,大家只需要刪除前面的#並修改配置內容即可(#代表註釋):

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HBASE_MANAGES_ZK=true 

配置hbase-env.sh配置hbase-env.sh

新增完成後儲存退出即可。

2. 配置/usr/local/hbase/conf/hbase-site.xml開啟並編輯hbase-site.xml,命令如下:

vi /usr/local/hbase/conf/hbase-site.xml

在啟動HBase前需要設定屬性hbase.rootdir,用於指定HBase資料的儲存位置,因為如果不設定的話,hbase.rootdir預設為/tmp/hbase-${user.name},這意味著每次重啟系統都會丟失資料。此處設定為HBase安裝目錄下的hbase-tmp資料夾即(/usr/local/hbase/hbase-tmp),新增配置如下:

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>file:///usr/local/hbase/hbase-tmp</value>
        </property>
</configuration>

3. 接下來測試執行。首先切換目錄至HBase安裝目錄/usr/local/hbase;再啟動HBase。命令如下:

cd /usr/local/hbase
bin/start-hbase.sh
bin/hbase shell

上述三條命令中,sudo bin/start-hbase.sh用於啟動HBase,bin/hbase shell用於開啟shell命令列模式,使用者可以通過輸入shell命令操作HBase資料庫。成功啟動HBase,截圖如下:hbase shell

停止HBase執行,命令如下:

bin/stop-hbase.sh

注意:如果在操作HBase的過程中發生錯誤,可以通過{HBASE_HOME}目錄(/usr/local/hbase)下的logs子目錄中的日誌檔案檢視錯誤原因。

2.2 偽分散式模式配置

1.配置/usr/local/hbase/conf/hbase-env.sh。命令如下:

vi /usr/local/hbase/conf/hbase-env.sh

配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK.HBASE_CLASSPATH設定為本機Hadoop安裝目錄下的conf目錄(即/usr/local/hadoop/conf)

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HBASE_CLASSPATH=/usr/local/hadoop/conf 
export HBASE_MANAGES_ZK=true

截圖如下:偽分散式hbase

2.配置/usr/local/hbase/conf/hbase-site.xml用命令vi開啟並編輯hbase-site.xml,命令如下:

vi /usr/local/hbase/conf/hbase-site.xml

修改hbase.rootdir,指定HBase資料在HDFS上的儲存路徑;將屬性hbase.cluter.distributed設定為true。假設當前Hadoop叢集執行在偽分散式模式下,在本機上執行,且NameNode執行在9000埠。

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
</configuration>

hbase.rootdir指定HBase的儲存目錄;hbase.cluster.distributed設定叢集處於分散式模式.截圖如下:配置hbase-site.xml

3. 接下來測試執行HBase。第一步:首先登陸ssh,之前設定了無密碼登陸,因此這裡不需要密碼;再切換目錄至/usr/local/hadoop ;再啟動hadoop,如果已經啟動hadoop請跳過此步驟。命令如下:

ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh

輸入命令jps,能看到NameNode,DataNode和SecondaryNameNode都已經成功啟動,表示hadoop啟動成功,截圖如下:hadoop jps

第二步:切換目錄至/usr/local/hbase;再啟動HBase.命令如下:

cd /usr/local/hbase
bin/start-hbase.sh

啟動成功,輸入命令jps,看到以下介面說明hbase啟動成功hbase jps

進入shell介面:

bin/hbase shell

截圖如下:hbase shell

4.停止HBase執行,命令如下:

bin/stop-hbase.sh

注意:如果在操作HBase的過程中發生錯誤,可以通過{HBASE_HOME}目錄(/usr/local/hbase)下的logs子目錄中的日誌檔案檢視錯誤原因。
這裡啟動關閉Hadoop和HBase的順序一定是:
啟動Hadoop—>啟動HBase—>關閉HBase—>關閉Hadoop