admin管理员组

文章数量:1657058

写在前面:我是「且听风吟」,目前是某上市游戏公司的大数据开发工程师,热爱大数据开源技术,喜欢分享自己的所学所悟,现阶段正在从头梳理大数据体系的知识,以后将会把时间重点放在Spark和Flink上面。

如果你也对大数据感兴趣,希望在这个行业一展拳脚。欢迎关注我,我们一起努力,一起学习。博客地址:https://ropledata.blog.csdn

博客的名字来源于:且听风吟,静待花开。也符合我对技术的看法,想要真正掌握一门技术就需要厚积薄发的毅力,同时保持乐观的心态。

你只管努力,剩下的交给时间!


文章目录

    • 一、前言
    • 二、HBase起源
    • 三、HBase优点及适用场景
    • 四、HBase架构设计
    • 五、HBase存储设计
      • 5.1、HLog设计
      • 5.2、HFile设计
    • 六、HBase数据模型
    • 七、极速安装配置
    • 八、Shell操作
      • 8.1、基础操作
      • 8.2、表操作
    • 九、总结

一、前言

本文HBase版本:2.1.3

HBase是大数据从业者必知必会的技能,我们需要掌握HBase的原理,架构设计,存储设计,优点及适用场景等方方面面。由于它的logo是一个海豚的形象,因此本文深入到HBase的起源开始分析,从0开始带你畅游大数据的海豚湾!



二、HBase起源

了解一个技术之前,我们要知道它是怎么来的,解决了什么问题,然后才会根据咱们自己的业务需要来考虑技术选型。

HBase最早起源于Google公司于2006年发表的BigTable论文,而后经过迅速的发展壮大,在2010年的时候成为了Apache的顶级项目。后来很多大公司都对HBase进行了符合自己业务风格的二次开发,就像flume一样,大部分我们也都能使用。

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式开源数据库,也就是NoSQL数据库,注意这里的NoSQL是指not only sql的意思。其实在我看来,HBase不能完全称得上分布式数据库,它其实更像是分布式存储系统,有点像HDFS。因为它没有大多数数据库所具有的RDBMS特性,比如没有触发器,不支持列的类型,也不支持高级查询语句。

那它这么菜,是怎么在大数据圈混的风生水起的呢?

咱们接着往下看!

三、HBase优点及适用场景

前面我们了解了HBase的起源,也吐槽了它的一些缺点,那它还这么火,肯定是有原因的。它的优点可以归纳如下:

  1. 高可靠,和hadoop HA一样,可以进行自动的故障转移;
  2. 高性能,存储数据时可以自动分片,通过Region分散在整个集群里,同时随着行数不断增长,Region也可以自动的切分和再分配;
  3. 强读写一致,保证了读写一致,所以适合高速的计算聚合操作;
  4. 最初是Hadoop的子项目,因此和HDFS高度集成,自由衔接;
  5. 代码写着简单,HBase提供了便捷高效的API,同时目前还有Phoenix助力,可谓如虎添翼;
  6. 优化了列查询,提供了块缓存和布隆过滤器,可以更高效的进行列查询。

结合这些HBase的优点,相信大家可以理解为什么我觉得HBase更像是一个分布式存储系统了吧?那它适合的业务场景也显而易见,可以概括如下:

  1. 海量数据存储

    作为大数据的海豚湾,HBase有容乃大,它非常适合存储海量数据,比如百亿行的数据。因此在大数据体系里,可以使用HBase存储日志数据,各种组件的日志,业务操作日志等等疯狂往里塞。

  2. 实时列查询

    前面我们介绍HBase优点的时候,已经说了HBase对于列查询做了很多优化,因此即使HBase存储着海量数据,你依然可以很快的查询到想要的RowKey对应的数据,因此在实际业务里HBase也经常应用于实时的查询场景。

看到这里更能感受到它的重要性了吧?下面我们接着分析HBase的结构设计。

四、HBase架构设计


从图中可以看出Hbase是由Client、Zookeeper、Master、HRegionServer、HDFS等几个组件组成,下面来介绍一下几个组件的相关功能:

从上面这个图里,我们可以发现HBase是由Client、Zookeeper、HMaster、HRegionServer、HDFS等几个组件组成,那么它们都有什么作用呢?可以概括如下:

  1. Client:其实client不仅包含了访问Hbase的接口,还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。
  2. Zookeeper:在大数据生态里zookeeper是很常见的,它主要作为分布式的协调。在HBase里它主要负责的工作如下:
    1. 保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master来提供服务;
    2. 监控RegionServer的状态,当RegionSevrer

本文标签: 带你海豚万字详解数据