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.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的版本,
接著, 進行解壓縮與更改路徑名稱:
和hadoop 1.X相同, hbase的設定檔都放在conf/中,
為了要讓hbase順利運作, 我們要修改hbase設定檔的參數,
首先, 先修改hbase-env.sh
在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:
其中, HMaster是hbase的master程式, HQuorumPeer是zookeeper,
而HRegionServer則是RegionServer, 其他, 則是hadoop的程序,
以上, 就完成了hbase 0.96的安裝,
可以用hbase shell (bin/hbase shell)查看並操作hbase.
hadoop的安裝可以參考: hadoop 1.1.2安裝(1), hadoop1.1.2安裝(2),
在安裝hbase前, 要先確認hadoop的版本是否相容(chapter 4.1):
HBase-0.92.x | HBase-0.94.x | HBase-0.96 | |
---|---|---|---|
Hadoop-0.20.205 | S | X | X |
Hadoop-0.22.x | S | X | X |
Hadoop-1.0.x | S | S | S |
Hadoop-1.1.x | NT | S | S |
Hadoop-0.23.x | X | S | NT |
Hadoop-2.x | X | S | S |
在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.
留言
張貼留言