需求:在三台主机上搭建hbase分布式集群
版本:
hbase-0.98.11-hadoop2
环境jdk1.8
主要角色
txynebo1 master, zookeeper, regionserver
txynebo2 master, zookeeper ,regionserver
txynebo3 zookeeper ,regionserver
1.hbase集群安装配置
1)上传软件安装包 ,解压,创建软链接,配置环境变量
2)配置文件修改 目录: hbase的conf目录
编辑regionservers
txynebo1
txynebo2
txynebo3
新建backup-masters(设置master备份节点这里我设置txynebo2)
txynebo2
hbase-site.xml
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>txynebo1,txynebo2,txynebo3</value><!—指定ZooKeeper集群位置>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/data/zookeeper</value><!—Zookeeper写数据目录(与ZooKeeper集群上配置相一致)>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value><!—Zookeeper的端口号>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cluster1/hbase</value><!—RegionServers 共享目录,这里的cluster1参数与前一篇文章中hdfs高可用配置中的参数相同>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value><!—开启分布式模式>
</property>
<property>
<name>hbase.master</name>
<value>60000</value><!—指定Hbase的master的位置如果只设置单个 Hmaster,那么 hbase.master 属性参数需要设置为 master5:60000 (主机名:60000)如果要设置多个 Hmaster,那么我们只需要提供端口 60000,因为选择真正的 master 的事情会有 zookeeper 去处理>
</property>
</configuration>
配置这个hbase.rootdir属性的时候,
需要将hdfs的core-site.xml和hdfs-site.xml两个配置文件copy到hbase的conf或者lib目录下,否则regionserver不能识别cluster1逻辑名称
hbase-env.sh
这个文件配置两个属性:
#配置jdk安装路径
export JAVA_HOME=/home/hadoop/app/jdk
#使用独立的Zookeeper集群
export HBASE_MANAGES_ZK=false
然后配置环境变量:
JAVA_HOME=/home/hadoop/app/jdk
HADOOP_HOME=/home/hadoop/app/hadoop
ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
STORM_HOME=/home/hadoop/app/storm
GIT_HOME=/home/hadoop/app/git
MAVEN_HOME=/home/hadoop/app/maven
SPARK_HOME=/home/hadoop/app/spark
HBASE_HOME=/home/hadoop/app/hbase
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:/home/hadoop/tools:$STORM_HOME/bin:$GIT_HOME/bin:$MAVEN_HOME/bin:$HBASE_HOME/bin:$PATH
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
export JAVA_HOME CLASSPATH PATH HADOOP_HOME ZOOKEEPER_HOME STORM_HOME GIT_HOME MAVEN_HOME HBASE_HOME
上面是我所有的环境变量,根据需要配置hbase有关的部分即可 。
分发到别的节点:
scp -r hbase-xxxxx hadoop@txynebo2:/home/hadoop/app/
scp -r hbase-xxxxx hadoop@txynebo3:/home/hadoop/app/
然后bin/start-hbase.sh 启动hbase(这里注意在哪个节点启动hbase 。会默认哪个是master)
jps命令看到
[hadoop@txynebo1 logs]$ jps
2289 DataNode
2595 JournalNode
2551 Jps
2727 DFSZKFailoverController
18649 HMaster
2793 ResourceManager
18778 HRegionServer
2187 NameNode
12509 QuorumPeerMain
[hadoop@txy_nebo2 logs]$ jps
16224 Jps
4642 JournalNode
4344 NameNode
6024 NodeManager
14378 HRegionServer
4716 DFSZKFailoverController
14477 HMaster
4542 DataNode
25054 QuorumPeerMain
6158 ResourceManager
[hadoop@txy_nebo3 hbase]$ jps
25329 QuorumPeerMain
4628 DataNode
11621 HRegionServer
5514 NodeManager
2671 JournalNode
11503 Jps
[hadoop@txy_nebo3 hbase]$
则进程启动成功
p:启动hbase要先启动zookeeper与hdfs服务
然后访问webui
主节点
备用节点
至此hbase分布式集群配置完成 (如果发现webui无法正常访问。可以分析日志查看原因 。)