文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【从零单排HBase 01】从一无所知到5分钟快速了解HBase

2015-02-03 00:12

关注

【从零单排HBase 01】从一无所知到5分钟快速了解HBase

在学的过程中,发现跟MySQL相互对比,能更深入地了解存储组件的设计。有任何问题或者想看的知识点,欢迎留言跟我沟通。

1.前言

随着公司业务不断发展,开始遇见越来越多的复杂存储场景。我们在关系型数据库上已经有了比较好的技术积累,但是并不能解决所有问题。

因此,需要对更多存储类型做技术储备。

HBase作为nosql的典型代表,是一个分布式的、面向列的开源数据库,在大数据存储上广受欢迎,因此,第一站就来到这里。

网络上对于HBase的文档有很多,但是看了一圈,没有特别能让一个小白快速入门的介绍。

本文作为一个入门文档,希望能通过自己的理解,来快速认识HBase到底是什么,它的结构、特点、适用场景有哪些,但不会有深入的技术点的说明。

嗯,就是快速,非常快速并且丝滑地去理解HBase到底是啥。

2. 适用场景

一开始,我们肯定需要了解的是,为什么要用HBase。

存储组件比较多,我们就简单谈谈MySQL和HBase的主要对比。

 

从一无所知到5分钟快速了解HBase

 

可以看到,在面对海量数据场景时,如果没有较强的事务要求,查询比较简单,那么HBase是非常适合的。

2. 基本概念

2.1 表、行、列和单元格

为什么正文要从这里开始呢?

因为这个是一切的基础,也是我们初次接触HBase最先想到的问题,HBase的数据格式是怎样的?

但是在入门HBase的过程中,发现一个小白想搞明白HBase到底是个什么存储格式还是挺费劲的。

比如给你这样一个HBaes的数据结构,是不是比较难理解是一个怎样的层级概念?

从一无所知到5分钟快速了解HBase

 

一个好的办法就是做 知识的迁移。所以,从我们熟悉的Mysql来说,是个非常好的方式。

Mysql的表结构我们非常熟悉,所以第一个问题就是,Mysql的表记录在HBase中是如何存储呢?

我们来举个例子,有两张mysql的表,表名叫user和location,表记录如下。

user表

从一无所知到5分钟快速了解HBase

 

location表

 

从一无所知到5分钟快速了解HBase

 

这样的结构,在HBase中的逻辑存储应该是这样的。

 

从一无所知到5分钟快速了解HBase

 

抽象出来的概念如下

 

从一无所知到5分钟快速了解HBase

 

相信有了这样直接的对比,不用我说,大家也能明白HBase的基本存储概念了。

那么,在HBase中确定一个值的方式就比较清楚了。

 

从一无所知到5分钟快速了解HBase

 

通过RowKey-CF-Column-Version我们就能找到Value,这样就明白了KV的查询的结构关系。

如果用代码来简单表示,可以这样显示:

SortedMap>>>

做个小结:

最基本的单位是列(column)。一列或者多列形成行(row),并且由唯一的行键(row key)来确定存储。反过来,一个表(table)中由若干行,其中每列可能由多个版本(version),在每一个单元格(cell)中存储了不同的值。

2.2 分区概念

第二章对存储结构做了比较直白的说明,下面介绍HBase另一个比较核心的概念:regin。

HBase中扩展和负载均衡的基本单位称为regin,regin本质上是以行键排序的连续存储的区间。

如果regin太大,系统会自动进行拆分(在中间的行键进行一拆二),反之,会把多个regin合并(非自动),以减少存储文件数量。

如果类比mysql,可以看作是分区表partition的概念。

每一个regin只能由一台regin服务器(region server)加载,每一台region server可以加载多个region。

3. 架构

这张图是HBase非常经典的整体架构图。图中展示了HBase的各种组件。

 

从一无所知到5分钟快速了解HBase

 

1)Client

Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。

2) Zookeeper

Hbase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:

3) HMaster

4)HReginServer

HregionServer直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:

5) HDFS

HDFS为Hbase提供最终的底层数据存储服务,同时为Hbase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:

 

看到这里了,原创不易,点个关注、点个赞吧,你最好看了~

知识碎片重新梳理,构建Java知识图谱:https://github.com/saigu/JavaKnowledgeGraph(历史文章查阅非常方便)

扫码关注我的公众号“阿丸笔记”,第一时间获取最新更新。同时可以免费获取海量Java技术栈电子书、各个大厂面试题。

阿丸笔记

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯