一、hbase介绍
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。
二、集群规划
主机名 IP 安装的软件 运行的进程
hadoop1 192.168.31.10 jdk、hadoop NameNode、DFSZKFailoverController
hadoop2 192.168.31.20 jdk、hadoop、hbase NameNode、DFSZKFailoverController、HMaster
hadoop3 192.168.31.30 jdk、hadoop、hbase ResourceManager、HMaster
hadoop4 192.168.31.40 jdk、hadoop、zookeeper、hbse DataNode、NodeManager、JournalNode、QuorumPeerMain、HRegionServer
hadoop5 192.168.31.50 jdk、hadoop、zookeeper、hbase DataNode、NodeManager、JournalNode、QuorumPeerMain、HRegionServer
hadoop6 192.168.31.60 jdk、hadoop、zookeeper、hbase DataNode、NodeManager、JournalNode、QuorumPeerMain、HRegionServer
说明:
本次hbase集群是依赖于hadoop集群,主要是依赖hadoop hdfs,hadoop集群搭建参照:hadoop集群搭建
进程说明:
Namenode、DataNode是hdfs服务进程。
DFSZKFailoverController是监控hadoop 集群状态进程,负责监控hadoop集群与zookeeper通信。
ResourceManager、NodeManager是hadoop yarn的服务进程。
JournalNode 存储hadoop namenode元数据信息服务,入edits文件存储。
HMaster、HRegionServer是hbase服务进程,HRegionServer是小弟,HMaster是老大,HMaster可以有多个,同时只有一个处于active状态。
QuorumPeerMain是zookeeper服务进程。
三、安装
1.上传hbase安装包,在hadoop2上安装配置,下载地址:http://archive.apache.org/dist/hbase/
2.解压环境变量配置
tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz
#配置环境变量
sudo vim /etc/profile
export HBASE_HOME=/usr/cloud/hbase/hbase-0.96.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZK_HOME/bin
3.配置hbase集群,要修改3个文件,一定是zk集群已经安装好了,配置好后要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下。
3.1修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_55
#让hbase使用外部的zk
export HBASE_MANAGES_ZK=false
3.2修改hbase-site.xml
vim 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>hadoop4:2181,hadoop5:2181,hadoop6:2181</value>
</property>
</configuration>
3.3修改regionservers
vim regionservers
hadoop4
hadoop5
hadoop6
3.4关联hdfs配置
scp /usr/cloud/hadoop/hadoop-2.2.0/etc/hadoop/core-site.xml hadoop2:/usr/cloud/hbase/hbase-0.96.2/conf
scp /usr/cloud/hadoop/hadoop-2.2.0/etc/hadoop/hdfs-site.xml hadoop2:/usr/cloud/hbase/hbase-0.96.2/conf
3.5拷贝hbase到其他节点
scp -r /usr/cloud/hbase/hbase-0.96.2-hadoop2/ hadoop3:/usr/cloud/hbase/
scp -r /usr/cloud/hbase/hbase-0.96.2-hadoop2/ hadoop4:/usr/cloud/hbase/
scp -r /usr/cloud/hbase/hbase-0.96.2-hadoop2/ hadoop5:/usr/cloud/hbase/
scp -r /usr/cloud/hbase/hbase-0.96.2-hadoop2/ hadoop6:/usr/cloud/hbase/
3.6启动所有的hbase(在hadoop2上执行)
#分别启动zk
./zkServer.sh start
#启动hbase集群
start-dfs.sh
#启动hbase,在主节点上运行:
start-hbase.sh
#为保证集群的可靠性,要启动多个HMaster,到hadoop3上在启动一个HMaster
hbase-daemon.sh start master
四、校验
1. 通过浏览器访问hbase管理页面
http://hadoop2:60010
2. 建表插入数据
#进入hbase shell
habse shell
#建表
create 'user' ,'info','data'
#插入数据
put 'user','rk01','info:name','liangjianyong'
#查询数据
scan 'user'