• 目录
  • 1、体系图
    • 写数据的流程(参考上图):
    • 读数据的流程(参考下图):

目录

1、体系图


针对上图的一些解释:
这里面数据分区(region)存储是为了查询方便(即因为是集群所以能充分利用磁盘的IO性)。添加数据时,数据先进入Hlog–预写日志(数据只能追加不能修改)<防止数据丢失>,数据在Hlog写完后再写到内存中
HFile:认为是将数据进行序列化。
StoreFile:认为是一个文件。
DFS:调用HDFS的客户端API来将数据传到HDFS。

写数据的流程(参考上图):

1、客户端向hregionServer请求写数据
2、hregionServer将数据先写入hlog中。
3、hregionServer将数据后写入memstore中。
4、当内存中的数据达到阈值64M的时候,将数据Flush到硬盘中,并同时删除内存和hlog中的历史数据。
5、将硬盘中数据通过HFile来序列化,再将数据传输到HDFS进行存储。并对Hlog做一个标记。
6、当HDFS中的数据块达到4块的时候,Hmaster将数据加载到本地进行一个合并(如果合并后数据的大小小于256M则当数据块再次达到4块时(包含小于256M的数据块)将最新4块数据块再次进行合并,此时数据块大于256M)。
7、若数据块大于256M,则将数据重新拆分,将分配后的region重新分配给不同的hregionServer进行管理。
8、当hregionServer宕机后,将hregionServer上的hlog重新分配给不同的hregionServer进行加载(修改.META文件中关于数据所在server的信息)。注意:hlog会同步到HDFS中。

读数据的流程(参考下图):

1、通过zk来获取ROOT表在那个节点上,然后进一步通过-ROOT表和-META表来获取最终的位置信息。
2、数据从内存和硬盘合并后返回到客户端。

PS:由上图可看到,当客户端在执行查询语句的时候,会先到zk上寻找对应-ROOT表(主要描述-META表在哪里)的位置信息(由此也知道ZK在Hbase中的作用),接下来根据-ROOT表中数据进而找到对应的HRegionServer,在对应的HRegionServer上的-META表(主要记载表的元数据信息)中找到对应的Table表在哪个HRegionServer上,再到对应的HRegionServer中查找对应的数据。

Hbase读写数据的原理解析相关推荐

  1. HDFS读写数据的原理

    目录 1 概述 2 HDFS写数据流程 3 HDFS读数据流程 目录 最近由于要准备面试,就把之前学过的东西好好整理下,权当是复习. 下面说下HDFS读写数据的原理. 1 概述 HDFS集群分为两大角 ...

  2. Hbase读写数据过程详解(hbase0.96版本之前与hbase0.96版本之后对比)

    @Author : Spinach | GHB @Link : http://blog.csdn.net/bocai8058 文章目录 HBase架构图 -ROOT-和.META.结构 -ROOT- ...

  3. hbase读写数据流程

    1.hbase写数据速度极高,吞吐量极大,主要归因于写入数据是先写入memstore内存的操作(当然这里还有wal顺序写日志防止机器崩溃),只有等到内存满了.才会批量顺序flush数据到磁盘,这样就避 ...

  4. AIML知识库数据匹配原理解析

    目录: 前言: 1.AIML系统工作流程 2.AIML的核心推理机制 3.推理举例 4.匹配规则及实践中遇到的一些问题的解释 总结: 目录: 前言: 参考:<Alice机理分析与应用研究> ...

  5. HBase读写性能调优(一)

    目录 1.HBase关键参数配置 1.1 写参数调整 1.1.1客户端调优 1.1.2 使用PutList方式提交请求 1.2 Memstore相关 1.2.1 根据 memstore 大小flush ...

  6. hbase原理与实践_JAVA连接HBase客户端及HBase写入数据和读取数据原理解析

    JAVA连接HBase客户端 接着上篇文章进行代码的实践,从JAVA 客户端对 HBase的客户端进行一系列操作 工具类:HbaseUtil 静态代码块一次性创建连接对象 并赋值 返回连接对象 Con ...

  7. 解析BW:数据源提取数据的原理

    解析BW:数据源提取数据的原理 题记:忽然想到这么个问题,后勤数据源和非后勤数据初始化有何区别,然后进行周边的拓展,所以就形成了下文.大部分知识源于TBW350和SAP SDN. 对数据源抽取机制的深 ...

  8. HBase数据库原理解析

    文章目录 1.HBase 数据库介绍 1.1产生背景 1.2简介 1.3表结构逻辑视图 1.3.1行键(RowKey) 1.3.2列簇(Column Family) 1.3.3时间戳(TimeStam ...

  9. 【Hadoop】HDFS操作、数据上传与下载原理解析、高级特性及底层原理

    HDFS操作.数据上传与下载原理解析.高级特性及底层原理 1 HDFS操作 1.1 Web Console网页工具 1.2 命令行 1.2.1 普通的操作命令 1.2.2 管理员命令 1.3 Java ...

最新文章

  1. eclipse里面M2_REPO引用(Maven2安装总结)
  2. nginx重定向到其他url方法_高级开发必须掌握Nginx之四,if、set、return
  3. python itertools.product_Python的itertools.product 方法
  4. 参考文献顺序不对_Endnote插入参考文献的保姆级教程
  5. matlab gui设计实例_S-Funciton应用实例
  6. c语言实现stack的算法(附完整源码)
  7. php substr函数的用法6,PHP中substr函数如何使用?
  8. java 提取url参数_Java提取URL某个参数的值
  9. 正能量:为web前端发开者代言
  10. 数字信号处理1:卷积
  11. idhttp.post方式 调用datasnap rest 远程方法(转咏南兄)
  12. 整数反转Java_详解 LeetCode_007_整数反转(Java 实现)
  13. Layer success 层弹出后的成功回调方法
  14. qt制作刻度条(可用作时间及其他刻度)实现缩放,以及平移
  15. kiss原则包括什么_KISS原则
  16. 最近服务器总被webshell攻击,木马也非常猖獗
  17. 查看users表空间使用率高的原因
  18. mailx配置TSL发送邮件
  19. linux的炒股软件“全胜”
  20. linux drm 架构 基础

热门文章

  1. CentOS 7 上 Docker 安装
  2. oracle 对应的JDBC驱动 版本
  3. Angular15 利用ng2-file-upload实现文件上传
  4. Linux快速计算MD5和Sha1命令
  5. 15_采用Pull解析器解析和生成XML内容
  6. 资源共享型智能指针实现方式
  7. poj2516Minimum Cost
  8. Sqlserver 通用存储过程(二) 联合主键
  9. tomcat jdbc SlowQueryReport的实现解读
  10. Vue.directive自定义指令