安裝HBase資料庫

junsansi發表於2013-04-14
 

不要以為山寨的就是低端貨,君不見BigTable的山寨版HBase就發展的如火如荼;山寨也是有技術含量的,從HADOOP下面的一個子專案發展為APACHE基金會的頂級專案,如今在開源業內的影響力更是與日俱增。

 

HBase應該可以算是NoSQL產品線中的一員,最起碼不屬於關係型資料庫。在設計上屬於結構化與非結構化的集合,其最大優勢在於能夠彈性伸縮,使其可以通過簡單的增加節點的方式,來擴充套件支撐能力。今天我們先快速接觸一下安裝和使用,以加深對其的理解。

 

1、安裝HBase

 

HBase的安裝很像HADOOP,也分為單機模式,偽分佈模式以及分散式模式,難易度也是依次排列。單機模式我們們就不講了,忒沒技術含量,一步到位,試一試分散式模式的安裝和使用唄。

 

HBase的發展非常快,目前最新穩定版已經到了0.96.4。不過據說每種hadoop版本都對應有適合的HBase版本,若版本選擇不匹配,則執行過程中可能出現各種異常。三思手頭上的hadoop環境版本號為0.20.2,這裡選擇HBase-0.90.5版本,因為這是號稱唯一一個能夠良好支援0.2x版本的HBase。

 

下載/解壓/修改使用者屬主,一條龍操作如下:

     

    # wget http://mirror.bit.edu.cn/apache/hbase/hbase-0.90.5/hbase-0.90.5.tar.gz

     

    # tar xvfz hbase-0.90.5.tar.gz -C /usr/local/

     

    # mv /usr/local/hbase-0.90.5/lib/hadoop-core-0.20-append-r1056497.jar /usr/local/hbase-0.90.5/lib/hadoop-core-0.20-append-r1056497.bak

     

    # cp /usr/local/hadoop-0.20.2/hadoop-0.20.2-core.jar /usr/local/hbase-0.90.5/lib/

    # chown grid:grid /usr/local/hbase-0.90.5 -R
 

注意前面那個cp操作,從hadoop目錄中複製hadoop-0.20.2-core.jar檔案到hbase目錄下,替換hbase下自帶的core.jar檔案,據說如不進行這個替換,那麼HBase在啟動過程中就會報錯(有可能,hbase自帶的核心版本號與本地hadoop版本號不同,為避免麻煩,替換最好),我沒有做測試,反正參考網上文件時,別人說讓替換,我就信了。

 

接下來的操作都是在grid使用者(即執行hadoop的作業系統帳戶)下進行,切換至grid使用者下,並將HBase目錄匯入到PATH環境變數,方便我們呼叫命令:

 
     

    # su - grid

     

    $ echo "export HBASE_HOME=/usr/local/hbase-0.90.5" >> .bash_profile 

      $ echo "export PATH=\${HBASE_HOME}/bin:\$PATH" >> .bash_profile 
 

修改hbase的環境變數檔案,配置JAVA_HOME的值到正確的路徑下。

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

增加兩行內容(或者說設定兩個環境變數):

 
     

    export JAVA_HOME=/usr/local/jdk1.7.0_09

      export HBASE_CLASSPATH=/usr/local/hadoop-0.20.2/conf
 

修改hbase站點配置檔案,配置hbase在hdfs中的儲存路徑。

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

增加下列配置:

 
     

     

        hbase.rootdir

     

        hdfs://hdnode1:9000/hbase

     

        The directory shared by region servers.

     

     

     

        hbase.cluster.distributed

     

        true

     

        The mode the cluster will be in. 

     

     

      

     

        hbase.master  

     

        hdfs://hdnode1:60000  

     

     

     

     

        hbase.zookeeper.quorum

     

        hdnode1,hdnode2,hdnode3,hdnode4,hdnode5

     

    Comma separated list of servers in the ZooKeeper Quorum. 

     

     

     

        hbase.zookeeper.property.dataDir

     

        /usr/local/hbase-0.90.5/logs/zookeeper

     

        Property from ZooKeeper's config zoo.cfg.

     

            The directory where the snapshot is stored.

     

        

     
 

編輯regionservers檔案,類似hadoop中的conf/slaves檔案,這裡是用來指定HReginServers的伺服器列表:

 
    $ vi /usr/local/hbase-0.90.5/conf/regionservers 
 

我們把5個節點都加進去:

 
     

    hdnode1

     

    hdnode2

     

    hdnode3

     

    hdnode4

      hdnode5
 

將hbase-0.90.5資料夾打包並複製到其它四個節點,操作步驟如下:

 
     

    $ tar cvfz hbase-0.95.tar.gz /usr/local/hbase-0.90.5

     

    $ scp hbase-0.95.tar.gz hdnode2:~/

     

    $ scp hbase-0.95.tar.gz hdnode3:~/

     

    $ scp hbase-0.95.tar.gz hdnode4:~/

      $ scp hbase-0.95.tar.gz hdnode5:~/
 

各個節點分別解壓這個檔案到/usr/local目錄。

 

 

啟動hbase服務(若要停止則用stop-hbase.sh指令碼):

 
    $ /usr/local/hbase-0.90.5/bin/start-hbase.sh 
 

hdnode1節點被配置為hmaster,則該節點查詢當前的程式,將能夠看到:

 
     

    [grid@hdnode1 ~]$ jps

     

    13695 HMaster

     

    13933 Jps

     

    664 NameNode

     

    818 SecondaryNameNode

     

    13637 HQuorumPeer

     

    13807 HRegionServer

      895 JobTracker
 

而在其它結點上,應該能夠看到HReginServer和HQuorumPeer程式:

 
     

    [grid@hdnode3 ~]$ jps

     

    2974 HQuorumPeer

     

    3048 HRegionServer

     

    16471 DataNode

     

    16529 TaskTracker

      3138 Jps
 

通過URL方式訪問:http://192.168.30.203:60010/master.jsp,可以檢視HBase的一些基礎資訊,日誌等等。這樣,如果過程中都沒有報錯,HBase就算安裝好了。

 

HBase提供的介面方式非常多

 

下面我們就來逐個介紹一下。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-758458/,如需轉載,請註明出處,否則將追究法律責任。

相關文章