美文网首页玩转大数据
2019一篇文章了解HBase与集群的详细搭建

2019一篇文章了解HBase与集群的详细搭建

作者: c062197eecd2 | 来源:发表于2019-07-26 22:55 被阅读0次

    1. HBase 基本介绍

    1.1简介:

    *hbase  是 bigtable 的开源java版本(GFS ,MapRuduce ,Bigtable 这是谷歌的三篇论文,奠定了目前大数据的基础).是建立在hdfs(Hadoop分布式文件系统)之上的,提供高可靠性,高性能,列存储(列式存储比较适合大数据量(压缩比高)、分析型操作(针对少数几列);不适合频率较高的删除(全列检索)、更新(重新压缩)操作),可伸缩,实时读写 nosql(Not Only SQL泛指非关系型的数据库)数据库系统.

    *主要用来存储结构化和半结构化的松散数据.

    *Hbase 查询数据库功能简单,不支持 join(即不支持左连接,右连接,内连接) 等复杂操作,不支持复杂的事务(只支持行级别的事务,比如说转账操作的,A减后B立马加的操作,这种双行复杂操作就不能执行).

    *Hbase 支持的数据类型是 : byte[ ]

    与Hadoop 一样,Hbase 目标主要依靠 横向扩展,通过不断增加廉价的商用服务器来增加计算和存储能力.

    Hbase 中的表一般有以下几点:

    a. 大: 一个可以有上十亿行.上百万列.

    b. 面向列 : 面向列(族)的存储和权限控制,列(族)独立检索.

    c. 稀疏 : 对于为空 (null) 的列,并不占用存储空间,因此,表可以设计的非常的稀疏

    1.2 HBase 的发展历程:

    HBase 的原型是谷歌的 BigTable 论文,受到了该论文思想的启发,目前作为Hadoop 的子项目来开发维护,用于支持结构化的数据存储.

    * 2006年Google发表BigTable白皮书

    * 2006年开始开发HBase

    * 2008  HBase成为了 Hadoop的子项目

    * 2010年HBase成为Apache顶级项目

    2. HBase 与 Hadoop 的关系

    2.1 HDFS 

    *为分布式存储提供文件系统

    *针对存储大尺寸的文件进行优化,不需要对 HDFS 上的文件进行随机 读写.

    *直接使用文件

    *数据模型不灵活

    *使用文件系统和处理框架

    *优化一次写入,多次读写的方式

    2.2 HBase

    *提供表装状的面向列的数据存储

    *针对表状数据的随机读写进行优化

    *使用 key - value 操作数据

    *提供灵活的数据模型

    *使用表状存储,支持 MapReduce (分布式计算) ,依赖 HDFS (hadoop 分布式文件系统)

    *优化了多次读,以及多次写

    3. RDBMS 与 HBase 的对比

    RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、SQL Server等。

    3.1 关系型数据库

    结构

    *数据库以表的形式存在

    *支持 FAT ,NTFS, EXT ,文件系统

    *使用 Commit(保证) log 存储日志

    *参考系统是坐标系统

    *使用主键: (PK)

    *支持分区

    *使用行,列,单元格

    功能

    *支持向上扩展

    *支持 SQL 查询

    *面向行, 即每一行都是一个连续单元

    *数据总量依赖于服务器配置

    *具有 ACID事务的 支持(

    Atomic(原子性)

    Consistency(一致性)

    Isolation(隔离性)

    Durability(持久性)

    )

    * 适合结构化数据

    *传统关系型数据库一般都是中心化的

    *支持事务

    *支持 Join (左连接,右连接,内连接)

    3.2 HBase

    结构:

    *数据库以 region 的形式存在

    * 支持 hdfs (hadoop 分布式文件系统)

    *使用 WAL(Write-Ahead Logs/提前写入式日志) 存储日志

    *参考系统是 Zookeeper 

    *使用行 键 (row key)

    *支持分片

    *使用行,列,列族和单元格

    功能:

    *支持向外扩展

    *使用API 和 MapReduce(分布式计算)来访问 HBse 表数据

    *面向列,即每一列都是一个连续的单元

    *数据总量不依赖具体某一台机器,而是取决于机器的数量

    *HBase 不支持 ADID事务(Atomicity、Consistency、Isolation、Durability)

    *适合结构化数据和飞数据化数据

    *一般都是分布式的

    *HBase 不支持复杂事务,支持的是单行数据的事务操作(比如转账操作就不能执行)

    *不支持 Join (就是左连接,右连接,内连接)

    4. HBase 特征简要

    海量存储

    Hbase 适合存储 PB 级别的海量数据,在 PB 级别的数据以及采用廉价 PC 存储的情况下,能在即使到百毫秒内返回数据,这与 HBase 的极易扩展性息息相关,正因为 HBase 良好的扩展性,才为海量数据的存储提供了便利.

    列式存储

    这里的列式存储其实说的是列族存储(因为列可以有上百万列,所以把多个列组合成族,这样就可以通过对应的族管理列了),Hbase 是根据列族来存储数据的,列族下面可以有非常多得列,列族在创建表的时候就必须指定.

    极易扩展

    HBase 的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer) 的扩展,一个是基于存储的扩展(HDFS)通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。

    备注:RegionServer的作用是管理region、承接业务的访问,这个后面会详细的介绍通过横向添加Datanode的机器,进行存储层扩容,提升Hbase的数据存储能力和提升后端存储的读写能力。

    高并发

    由于目前大部分使用Hbase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,Hbase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。

    稀疏

    稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

    5. HBase 的基础架构

    HBase 的基础架构

    未完待续...

    相关文章

      网友评论

        本文标题:2019一篇文章了解HBase与集群的详细搭建

        本文链接:https://www.haomeiwen.com/subject/mobrrctx.html