安装部署
环境准备
1、将Hbase安装包上传到/e3base/e3base560目录下
2、配置Hbase的环境变量,并分发到集群的其他机器中
3、执行source /e3base/.bash_profile 使环境变量生效
# 配置环境变量
## hbase
export HBASE_HOME=$IN_HOME/hbase
export PATH=$HBASE_HOME/bin:$PATH
# 分发到其他主机
for i in dchao0{1..2};do scp -r /e3base/.bash_profile $i:/e3base/;ssh $i "source /e3base/.bash_profile";done;
安装
1、解压
tar -zxvf hbase-2.2.7-e3base5.6.0-x86.tgz
2、创建软连接
ln -s /e3base/e3base560/hbase-2.2.7-e3base5.6.0-x86 ~/hbase
配置
Hbase的配置文件均处于/e3base/hbase/conf目录下。
1、hbase-env.sh文件
配置文件中HBASE_MASTER_OPTS、HBASE_THRIFT_OPTS、HBASE_REGIONSERVER_OPTS参数中的JVM堆内存大小,如在测试环境,请注意修改这些参数中的-Xms -Xms -Xmn值符合当前主机环境,如堆内存值配置过大超过系统可用内存,会导致服务启动失败。
2、habse-site.xml文件
<property>
<name>hbase.zookeeper.quorum</name>
<value>dchao,dchao01,dchao02</value>
</property>
# hbase.zookeeper.quorum: 配置为zookeeper连接地址,多个主机之间以逗号分隔。
3、regionservers文件
regionservers文件中配置了hbase集群所有regionserver节点,每行对应一个主机名。
dchao
dchao01
dchao02
4、backup-masters文件
配置master备节点,文件内容写入备master节点的主机名(可以配置多个,每行对应一个主机名)。
dchao01
dchao02
5、集群分发
for i in dchao0{1..2};do scp -r /e3base/e3base560/hbase-2.2.7-e3base5.6.0-x86 $i:/e3base/e3base560;ssh $i ln -s /e3base/e3base560/hbase-2.2.7-e3base5.6.0-x86 /e3base/hbase;done;
服务
再启动hbase服务之前,必须先启动zookeeper、HDFS、再启动Hbase
组件理解
HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。
物理存储结构
数据模型
1、Name Space 命名空间**
类似于关系型数据库的DataBase概念,每个命名空间下有多个表。**
HBase有两个自带的命名空间,分别是“hbase”和“default”,“hbase”中存放的是HBase内置的表,“default”表是用户默认使用的命名空间。
*2、Region*
类似于关系型数据库中的表的概念。**
Hbase定义表的时候,只需要声明列族即可。不需要生命具体的列。HBase写入数据时,字段可以动态、按需指定。意思是这个表可以自由的变化。
*3、Row*
HBase表中的每行数据都由一个RowKey和多个Column(列)组成**
数据是按照RowKey的字典顺序存储的,并且查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重要。
*4、Column*
HBase中的每个列都由Column Family(列族)和Column Qualifier(列限定符)进行限定。
例如info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。
*5、Time Stamp*
用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入HBase的时间。
*6、Cell*
由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。
cell中的数据是没有类型的,全部是字节码形式存储。
Hbase架构
- 整个Hbase的架构,又Region Server来管理一个一个的Region,也就是来管理一张一张的表。
在Region中,又有store跟storefile。store指的是表的数据,结合图片进行查看。storefile指的是,表中字段数据的存储的具体信息。
- Master:是所有Region Server的管理者,其实现类为HMaster,主要作用如下:
对于表的操作:create, delete, alter
对于RegionServer的操作:分配regions到每个RegionServer,监控每个RegionServer的状态,负载均衡和故障转移。
- zookeeper: HBase通过Zookeeper来做Master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。
- HDFS:HDFS为Hbase提供最终底层数据的存储服务,同时为Hbase提供高可用的支持