IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hbase 原理浅析 -> 正文阅读

[大数据]Hbase 原理浅析

1 Hbase 数据模型

?Namespace(表命名空间):类似关系数据库的实例,默认为default。

Table(表):一个表由一个或者多个列族组成。

Row(行):一个行包含了多个列,这些列通过列族来分类。一个Region就是多个行的集合。每一个行都有一个类似主键的rowkey,rowkey在HBase中是严格按照字典排序的。

Column Family(列族):列族是多个列的集合。

Column Qualifier(列):多个列组成一个行。

Cell(单元格):一个列中可以存储多个版本的数据。而每个版 本就称为一个单元格(Cell)。(rowkey:column family:column:version)

Timestamp(时间戳/版本号):是时间戳,也可以称为是版本号,因为它是用来标定同一个列中多个单元格的 版本号的。

HBase部分支持了ACID(Atomicity(原子性)、Consistency(一致性)、 Isolation(隔离性)、Durability(持久性))。

2 Hbase 架构

Master:负责启动的时候分配Region到具体的RegionServer,执行各种管理操作,比如Region的分割和合并。

RegionServer:就是存放Region的容器,负责数据获取、插入、删除等操作(调用了HDFS的客户端接口来实现)。

Region:表的一部分数据(类似关系型数据库中分区表的一个分区)。

HDFS:分布式文件存储系统,HBase并不直接跟服务器的硬盘交互,而是跟HDFS交互。

ZooKeeper:hbase元数据存储在ZooKeeper上。

2.1 RegionServer

一个 RegionServer 包含有: 一个 WAL 和?多个 Region 。

2.2 WAL?

预写日志(Write-ahead log,WAL):就是设计来解决宕机之后的操作恢复问题的。数据到达Region的时候是先写入WAL,然后再被加载到 Memstore的。
WAL是存储在HDFS上的。

2.3 Region

?一个 Region 包含有:多个Store。

2.4 Store

?一个 Store 包含有:一个 MemStore 和多个 HFile。

2.5 MemStore

每个Store中有一个MemStore实例。数据写入WAL之后就会被放入MemStore。MemStore是内存的存储对象,只有当MemStore满了的时候才会将数据刷写(flush)到HFile中。

Memstore是存储在内存中的。

Memstore存在的意义是维持数据按照rowkey顺序排列,而不是做一个缓存。

2.6 HFile

当 MemStore 满了之后 HBase 就会在 HDFS 上生成一个新的 HFile,然后把 MemStore 中的内容写到这个HFile中。

HFile 直接跟HDFS打交道,它是数据的存储实体。

一个 HFile 包含有(在HBase中一个块的 大小默认为64KB):多个块。

  • Data:数据块,每个HFile有多个Data块。
  • Meta:元数据块,是可选的。
  • FileInfo:文件信息,是必选的。
  • DataIndex:存储Data块索引信息的块文件,是可选的。
  • MetaIndex:存储Meta块索引信息的块文件,是可选的。
  • Trailer:存储了FileInfo、DataIndex、MetaIndex 块的偏移值,是必选的。
    ?

2.7 Data Block

?一个 Data Block?包含有:一个 BlockType 和多个 Cell。

2.8 Cell

单元格(Cell):KeyValue键值对。

key值:存储 rowkey、column family、 column等的元数据。

3 Region 二层查询结构

?4?KeyValue 读写流程

4.1 数据写入

数据写入步骤:

  1. 数据被发出之后第一时间被写入WAL。
  2. 数据随后会立即被放入Memstore中进行整理(序列化)。
  3. 最后,当Memstore太大了达到尺寸上的阀值,或者达到了刷写时间间隔阀值的时候,HBaes会被这个Memstore的内容刷写到HFile文件。

4.2 数据读取

读取数据步骤:

  1. 在Scan扫描的时候store会创建StoreScanner实例。
  2. StoreScanner 会把MemStore和HFile结合起来扫描。
  3. 当StoreScanner打开的时候,会先定位到起始行键(STARTROW)上,然后开始往下扫描。
  4. Scan要把所有符合条件的StoreScanner都扫描过一遍之后才会返回数据给用户。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:53:02  更:2021-07-28 07:54:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 0:54:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码