【集群設計】
在原有的hadoop2.x集群上搭建Hbase集群,因為hbase集群要以來hdfs
hostname ip 軟件 進程 角色
hadoop2001 192.168.1.221 Hbase HMASTER 主
hadoop2002 192.168.1.222 Hbase HMASTER 備
hadoop2003 192.168.1.223 Hbase regionservers 子
hadoop2004 192.168.1.224 Hbase regionservers 子
hadoop2005 192.168.1.225 Hbase regionservers 子
hadoop2006 192.168.1.226 Hbase regionservers 子
【前期準備】
hadoop集群要搭建好,zookeeper集群也要搭建好
【1】:下載解壓
在hadoop2001機器上先搭建(2001上做了其他機器的免密碼登陸)
tar -xzvf Hbase-0.96.2.tar.gz
cp -r Hbase-0.96.2 /usr/local
【2】添加和修改配置
2.1>將hadoop的配置hdfs-site.xml和core-site.xml 放到hbase/conf下
cd /usr/local/hadoop/etc/hadoop
cp hdfs-site.xml core-site.xml /usr/local/hbase-0.96/conf
2.2>修改hbase-env.sh
設置hbse使用外部的zk和使用的jdk
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/local/jdk1.7.0_65
2.3>修改hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存儲的路徑 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns1/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value> </property>
<!-- 指定zk的地址,多個用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop2005:2181,hadoop2006:2181,hadoop2004:2181,hadoop2003:2181</value>
</property>
</configuration>
2.4>編輯從節點regionservers啟動腳本
hadoop2003
hadoop2004
hadoop2005
hadoop2006
2.5>將hbase節點cp到其他機器上
scp -r /usr/local/hbase-0.96 root@hadoop2002:/usr/local
scp -r /usr/local/hbase-0.96 root@hadoop2003:/usr/local
scp -r /usr/local/hbase-0.96 root@hadoop2004:/usr/local
scp -r /usr/local/hbase-0.96 root@hadoop2005:/usr/local
scp -r /usr/local/hbase-0.96 root@hadoop2006:/usr/local
hbase配置簡介.png
hbase-env.sh.png
hbase-site.sh.png
regionservers子節點配置.png
【3】:將hadoop目錄下的core-site.xml和hdfs-site.xml復制到hbase/conf下(給每臺機器都copy),這是為了讓hbase知道上邊所配置的ns1是誰,即知道nameService的映射(通過nameservice找到namenode),因為hbase以來hdfs,如果不copyhadoop目錄下的core-site.xml和hdfs-site.xml到hbase的conf目錄下,會導致HRegionserver(hbase子節點)找不到HDFS的位置,從而導致HRegionserver不能啟動
2017-02-21_112541.png
【4】:啟動集群
在啟動hbase集群之前要確保hdfs和zookeeper集群已經打開
在2001機器上開啟集群
./start-hbase.sh
這時(01有hmaster進程,03040506上有hregionserver進程)
所以還要在02機器上再開啟一個Hmaster進程作為備的Hmaster,以達到高可靠
./hbase-daemon.sh start master
【5】:進程校驗
2001.png
2002.png
2003.png
03,04,05,06上都會有HRegionServer進程
web頁面查看
hadoop2001:60010
60010.png
詳細信息.png
【6】:建表驗證
./hbase shell
//建user表
create 'user','info','data'
//插數據
put 'user','rk0001','info:name','xiaojiang'
put 'user','rk0001','info:age','16'
put 'user','rk0001','info:sex','boy'
//查看數據
scan 'user'
coll.png
去hdfs上查看hbase數據
2016-12-23_113913.png
去hbase頁面查看 : hadoop2001:60010
2016-12-23_114026.png
【7】:高可靠驗證
將01主機上的Hmaster進程kill掉,看會不會切換到02上的Hmaster