你的位置:首页 > 数据库

[数据库]HBase集群安装


环境:CentOS 6.4,Hadoop 2.6.0,ZooKeeper 3.4.6,HBase 1.0.1.1 

集群角色规划:
HostName
HBase Role
ZooKeeper
Hadoop Role
HDP1
MasterYESSlave
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.
    以下只配置几个必需要修改的项,其它的项使用默认值。hbase-site. <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使用是偶数个节点,其实是不合理的,应该用奇数个节点。