hadoop(16)--Hbase集群搭建

如期更新,Hbase集群搭建实在HDFS基础之前的,所以先将之前搭建的hadoop的分布式集群跑起来。
Hbase的集群比Hadoop的集群简单很多,话不多说

1,解压

我用的Hbase还是很早的版本,只要和hadoop相匹配就行,主要匹配hadoop2.x就可以

tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C app/

2,配置

vi hbase-env.sh 

##修改如下
配置JAVA_HOME
export JAVA_HOME=/home/songlj/app/jdk1.8.0_161
不用hbase自带的zk
export HBASE_MANAGES_ZK=false
vi hbase-site.xml 

在configuration中添加
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>my06:2181,my07:2181,my08:2181</value>
</property>

还有一个就是Hbase集群中的HregionServer在哪些机器上,配置如下

vi regionservers
修改为
my06
my07
my08

这一点和Hdfs的salve文件很像,其实原理也是一样的,HMaster会读这个文件,将HregionServer在这些服务器上启动

思考

在hbase-site.xml中ns这个hbase不认识,怎么办呢?只需将hadoop的core-site.xml以及hdfs-site.xml放到hbase的conf目录下即可,这个和之前用java api连接HDFS的时候一样的,其实就是hbase中持有的HDFS的RPCclient要知道nodeServer

cp ~/app/hadoop-2.4.1/etc/hadoop/{core-site.xml,hdfs-site.xml} ./

接下来把配置好的发送到my05,my06,my07,my08上

scp -r hbase-0.96.2-hadoop2/ my05:/home/songlj/app/
scp -r hbase-0.96.2-hadoop2/ my06:/home/songlj/app/
scp -r hbase-0.96.2-hadoop2/ my07:/home/songlj/app/
scp -r hbase-0.96.2-hadoop2/ my08:/home/songlj/app/

启动

在my04上bin目录下执行

./start-hbase.sh 

执行后,hbase在本机启动了一个HMaster的进程,在my06,07,08上分别启动了HRegionServer的进程

《hadoop(16)--Hbase集群搭建》 image.png
《hadoop(16)--Hbase集群搭建》 image.png

关键点

现在HMaster是单节点,在集群中出现单节点,非HA
所以,在my05上再启动一个HMaster
在bin目录下,执行

./hbase-daemon.sh start master

可以看出这个和启动yarn的resourceManager十分相似,到这里插一句:掌握Hadoop的MR,HDFS,Yarn的搭建,源码十分重要,这个是学好大数据包括Storm,Spark的基础
看看my05上的HMaster是否启动

[songlj@my05 conf]$ jps
4850 HMaster
2179 ResourceManager
5383 Jps
[songlj@my05 conf]$ 

很明显,Hbase的集群已经搭建完成
通过web看一下效果

《hadoop(16)--Hbase集群搭建》 image.png

现在是05主节点,是因为我将04关掉之后,又重启了一次

望指正,不吝赐教!

点赞