環境:CentOS 6.4,Hadoop 2.6.0,ZooKeeper 3.4.6,HBase 1.0.1.1
集群角色規划:
|
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
以下只配置幾個必需要修改的項,其它的項使用默認值。hbase-site.xml的默認配置可以從
幫助文檔(Default Configuration)獲得。
<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使用是偶數個節點,其實是不合理的,應該用奇數個節點。
