環境:CentOS 6.4,Hadoop 2.6.0,ZooKeeper 3.4.6,HBase 1.0.1.1 html
集羣角色規劃:
HostName
|
HBase Role
|
ZooKeeper
|
Hadoop Role |
HDP1
|
Master |
YES |
Slave |
HDP2
|
Backup Master & RegionServer
|
YES
|
Master
|
HDP3
|
RegionServer
|
YES
|
Slave
|
HDP4
|
RegionServer
|
YES
|
Slave
|
1. 任意Master(HDP1)節點解壓HBase
sudo tar zxvf hbase-1.0.1.1-bin.tar.gz -C /usr/local/
sudo mv hbase-1.0.1.1 hbase
sudo chown -R hdp:hdp hbase
2. 修改hbase-env.sh
vim conf/hbase-env.sh,出掉JAVA_HOME的註釋,並修改成本地的JAVA_HOME
export JAVA_HOME=/usr/lib/jdk7
修改HBASE_MANAGES_ZK爲false,默認爲true,表示HBase託管zookeeper實例,若是是HBase獨佔的zookeeper,能夠設定爲true。
export HBASE_MANAGES_ZK=false
3. 修改hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://HDP2:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper/data</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>HDP1,HDP2,HDP3,HDP4</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
</configuration>
hbase.rootdir:Region Servers共享的HBase持久化數據的存儲地址。須要使用包含文件系統scheme的徹底限定地址。
hbase.cluster.distributed:指定Hbase集羣是否以分佈式方式運行。
hbase.master.port:Master綁定的端口,包括backup-master.
hbase.zookeeper.property.dataDir:這個是ZooKeeper配置文件zoo.cfg中的dataDir。zookeeper存儲數據庫快照的位置。
hbase.zookeeper.quorum:ZooKeeper的全部成員服務器列表,服務器名之間用逗號分隔。
hbase.zookeeper.property.clientPort:這個是ZooKeeper配置文件zoo.cfg中的clientPort。ZooKeeper提供給客戶端鏈接的端口,默認是2181。
4. 修改regionservers,將RegionServers寫入。
vim conf/regionservers
HDP2,HDP3,HDP4
5. 修改backup-masters,將Backup Master寫入。
vim conf/backup-masters
HDP2
6. 添加環境變量方便調用HBase
vim /etc/profile
#HBase Env
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin:$HBASE_HOME/conf
7. 將修改好的安裝目錄分發到全部節點,一併修改環境變量。
8. 啓動HBase
在HDP1上調用start-hbase便可。
9.經過jps查看進程。
HDP1上有HMaster,HDP2上有HMaster和HRegionServer,HDP3和HDP4上是HRegionServer。
總結:
1. hbase.master.port須要指定,否則啓動backup-master時會報Already in use的錯誤。
2. HMaster(包括backup-master)須要可以passwordless ssh到其它服務器
3. 我這裏的ZooKeeper使用是偶數個節點,實際上是不合理的,應該用奇數個節點。