如期更新,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的进程
关键点
现在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看一下效果
现在是05主节点,是因为我将04关掉之后,又重启了一次
望指正,不吝赐教!