安装部署

环境准备

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数据库。

物理存储结构

image.png

数据模型

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架构

image.png

  • 整个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提供高可用的支持

image.png

End

本文标题:Hbase

本文链接:https://www.tzer.top/archives/125.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2021 年 09 月 18 日
如果觉得我的文章对你有用,请随意赞赏