hbase 0.96 on hadoop 1.1.2 安裝

在完成了hadoop安裝後, 我們可以繼續安裝hbase,
hadoop的安裝可以參考: hadoop 1.1.2安裝(1), hadoop1.1.2安裝(2),
在安裝hbase前, 要先確認hadoop的版本是否相容(chapter 4.1):

HBase-0.92.xHBase-0.94.xHBase-0.96
Hadoop-0.20.205SXX
Hadoop-0.22.xSXX
Hadoop-1.0.xSSS
Hadoop-1.1.xNTSS
Hadoop-0.23.xXSNT
Hadoop-2.xXSS

在hbase 0.96版本中, 就已經開始支援hadoop 2.0 (YARN),
不過, 考量到我們對於haddop 1.x版本較為熟悉,
我們還是以hadoop 1.1.2作為使用的hadoop版本範例,

在安裝hbase前, 我們假設環境(網路, 權限, JVM以及hadoop)已經設定好,
接下來, 我們就去下載hbase 0.96的程式碼,
和hadoop相同, hbase也是以java為基礎的系統,
因此, 每一個程序執行時, 也都是一個java process,
我們用以下的指令下載hbase 0.96:

$ cd /opt
$ wget https://archive.apache.org/dist/hbase/hbase-0.96.2/hbase-0.96.2-hadoop1.tar.gz

在資料夾下, 有兩個不同的檔案(hbase-0.96.2-hadoop1, hbase-0.96.2-hadoop2),
分別對應於不同的hadoop版本, 在這裡, 我們使用hbase-0.96.2-hadoop1的版本,
接著, 進行解壓縮與更改路徑名稱:

$ tar -zxf hbase-0.96.2-hadoop1.tar.gz
$ mv hbase-0.96.2-hadoop1 hbase

和hadoop 1.X相同, hbase的設定檔都放在conf/中,
為了要讓hbase順利運作, 我們要修改hbase設定檔的參數,
首先, 先修改hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/java-6-oracle
export HADOOP_CONF_DIR=/opt/hadoop/conf
export HBASE_LOG_DIR=/opt/data/hbase/hbase-logs
export HBASE_PID_DIR=/opt/data/hbase/hbase-pids
export HBASE_MANAGES_ZK=true
export HBASE_CLASSPATH=/opt/hbase/lib

# The maximum amount of heap to use, in MB. Default is 1000.
export HBASE_HEAPSIZE=1000

在這裡的設定, 和haddop一樣, 
先定義JDK的位置, hbase LOG和PID的存放位置, 並定義記憶體使用大小,
之後定義hadoop設定檔的位置以及hbase library的位置,
比較特別的是HBASE_MANAGES_ZK這個參數,
設為TRUE則使用hbase自帶的zookeeper叢集, 
若是已有zookeeper或是單機安裝hbase則可以設為FALSE,

接著, 設定hbase-site.xml:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master.hbase.mbwcl.nctu.edu.tw:9000/hbase</value>
        <description>The directory shared by region servers.</description>
    </property>

    <property>
        <name>hbase.tmp.dir</name>
        <value>/opt/data/hbase/</value>
    <description>Temporary directory on the local filesystem.</description>
    </property>

    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/opt/data/hbase-tmp</value>
    </property>

    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
        <description>The mode the cluster will be in. Possible values are false: standalone and pseudo distributed setups with managed Zookeeper true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh) </description>
    </property>

    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2222</value>
        <description>Property from ZooKeeper's config zoo.cfg.</description>
    </property>

    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master.hbase.mbwcl.nctu.edu.tw, slave01.hbase.mbwcl.nctu.edu.tw, slave02.hbase.mbwcl.nctu.edu.tw</value>
        <description>Comma separated list of servers in the ZooKeeper Quorum.</description>
    </property>
</configuration>

在hbase-site.xml中, 設定HDFS的通訊埠(9000),
此設定必須和hadoop安裝時的設定一樣(fs.default.name),
接著, 設定hbase和zookeeper的暫存資料位置(hbase.tmp.dir, hbase.zookeeper.property.dataDir),
以及是否為分布式安裝(hbase.cluster.distributed),
最後一個部分是zookeeper的設定,
先設定zookeeper使用的通訊埠(hbase.zookeeper.property.clientPort),
接著, 設定那些機器負責扮演zookeeper的角色(hbase.zookeeper.quorum),

最後, 編輯regionservers檔案,
確定那些機器擔任RegionServer:

user@master:/opt/hbase$ cat conf/regionservers
master.hbase.mbwcl.nctu.edu.tw
slave01.hbase.mbwcl.nctu.edu.tw
slave02.hbase.mbwcl.nctu.edu.tw

完成上述步驟後, 將設定檔複製到每一個機器上,
並且執行(bin/start-hbase.sh)開始hbase叢集,
如果順利, 在master節點上可以看到以下程式執行:

user@master:/opt/hbase$ jps
2931 NameNode
3337 SecondaryNameNode
3128 DataNode
4252 HQuorumPeer
3433 JobTracker
3625 TaskTracker
4954 HRegionServer
4772 HMaster

其中, HMaster是hbase的master程式, HQuorumPeer是zookeeper,
而HRegionServer則是RegionServer, 其他, 則是hadoop的程序,
以上, 就完成了hbase 0.96的安裝,
可以用hbase shell (bin/hbase shell)查看並操作hbase.

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列