之前已经在CentOS 6.7上安装部署Hadoop 2.7.2(http://blog.csdn.net/noob_f/article/details/53366756)、ZooKeeper 3.4.9(http://blog.csdn.net/noob_f/article/details/53391298),并正常启动Hadoop集群。
master
[root@master ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/0.98.23/hbase-0.98.23-hadoop2-bin.tar.gz
[root@master ~]# tar zxvf hbase-0.98.23-hadoop2-bin.tar.gz
[root@master ~]# mv hbase-0.98.23-hadoop2 /usr/local/
[root@master ~]# vi /usr/local/hbase-0.98.23-hadoop2/conf/hbase-env.sh
修改
# export JAVA_HOME=/usr/java/jdk1.6.0/
为
export JAVA_HOME=/usr/local/jdk1.7.0_79/
- 注:
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
# export HBASE_MANAGES_ZK=true
ZooKeeper的HBASE_ MANAGES_ZK
配置项,该项表示是否使用HBase管理其自带的ZooKeeper。如果取消注释,并设置其值为true
,将使用自带的ZooKeeper,这样就不需要再单独下载ZooKeeper并做相应配置了。我之前安装部署了ZooKeeper,所以不取消注释。
[root@master ~]# vi /usr/local/hbase-0.98.23-hadoop2/conf/hbase-site.xml
添加
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper-3.4.9</value>
</property>
<property>
<name>hbase.master</name>
<value>master:60000</value>
</property>
</configuration>
保存退出
hbase.rootdir
设置为HDFS的NameNode的位置。- 属性
hbase.zookeeper.quorum
:该属性的值会让HBase启动时在相应节点上运行ZooKeeper实例。
[root@master ~]# vi /usr/local/hbase-0.98.23-hadoop2/conf/regionservers
- 删掉默认的
localhost
,并添加想要运行RegionServer的节点名
内容修改为
slave
保存退出
- 删掉
localhost
的原因是并不想在Hadoop的namenode上运行RegionServer。因为namenode上并不存储HDFS数据,运行RegionServer需要远程调用数据,同时也会加重namenode的负担。如果一定要在namenode上运行RegionServer,也应该把localhost
换成相应的机器名,如master
。因为HBase也可以通过在其他节点上运行start-hbase.sh
脚本启动(这时会把输入命令的节点作为master节点),这时localhost
指的是本机节点而不是namenode。
设置HBase环境变量
[root@master ~]# vi /etc/profile.d/hbase.sh
添加
export HBASE_HOME=/usr/local/hbase-0.98.23-hadoop2
export PATH=$HBASE_HOME/bin:$PATH
export HADOOP_CLASSPATH=$HBASE_HOME/lib/*
保存退出
[root@master ~]# source /etc/profile.d/hbase.sh
[root@master ~]# rsync -av /usr/local/hbase-0.98.23-hadoop2 slave:/usr/local/
[root@master ~]# rsync -av /etc/profile.d/hbase.sh slave:/etc/profile.d/
slave
[root@slave ~]# source /etc/profile.d/hbase.sh
master
[root@master ~]# /usr/local/hbase-0.98.23-hadoop2/bin/start-hbase.sh
使用Web UI界面查看启动情况:在地址栏中输入master:60010,会看到HBase管理界面,看到这些表明HBase已经启动成功。
[root@master ~]# jps
3285 SecondaryNameNode
3536 ResourceManager
9826 QuorumPeerMain
10470 HMaster
3127 NameNode
10794 Jps
slave
[root@slave ~]# jps
2929 DataNode
8071 QuorumPeerMain
8470 HRegionServer
3037 NodeManager
8747 Jps
master
停止HBase
[root@master ~]# /usr/local/hbase-0.98.23-hadoop2/bin/stop-hbase.sh