| |
|
开发:
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):多个块。
2.7 Data Block?一个 Data Block?包含有:一个 BlockType 和多个 Cell。 2.8 Cell单元格(Cell):KeyValue键值对。 key值:存储 rowkey、column family、 column等的元数据。 3 Region 二层查询结构?4?KeyValue 读写流程4.1 数据写入数据写入步骤:
4.2 数据读取读取数据步骤:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |