Hbase---hfile

news2024/11/22 17:10:47

逻辑数据组织格式
在这里插入图片描述

  • Scanned block section:表示顺序扫描HFile时(包含所有需要被读取的数据)所有的数据块将会被读取,包括Leaf Index Block和Bloom Block;
  • Non-scanned block section:HFile顺序扫描的时候该部分数据不会被读取,主要包括Meta Block和Intermediate Level Data Index Blocks两部分;
  • Load-on-open-section:这部分数据在HBase的region server启动时,需要加载到内存中。包括FileInfo、Bloom filter block、data block index和meta block index等各种索引的元数据信息;
  • Trailer:这部分主要记录了HFile的基本信息、各个部分的偏移值和寻址信息。
  • Data Block:主要存储用户的key,value信息
  • Meta Block:记录布隆过滤器的信息
  • Root Data Index:DataBlock的根索引以及MetaBlock和Bloom Filter的索引
  • Intermediate Level Index:DataBlock的第二层索引
  • Leaf Level Index:DataBlock的第三层索引,即索引数的叶子节点
  • Fileds for midKey:这部分数据是Optional的,保存了一些midKey信息,可以快速地定位到midKey,常常在HFileSplit的时候非常有用
  • MetaIndex:即meta的索引数据,和data index类似,但是meta存放的是BloomFilter的信息
  • FileInfo:保存了一些文件的信息,如lastKey,avgKeylen,avgValueLen等等
  • Bloom filter metadata:是布隆过滤器的索引

物理数据结构图:

在这里插入图片描述

数据的读取

请添加图片描述

  1. Client访问zookeeper,获取hbase:meta所在RegionServer的节点信息
  2. Client访问hbase:meta所在的RegionServer,获取hbase:meta记录的元数据后先加载到内存中,然后再从内存中根据需要查询的RowKey查询出RowKey所在的Region的相关信息(Region所在RegionServer)
  3. Client访问RowKey所在Region对应的RegionServer,发起数据读取请求
  4. 读取memstore中的数据,看是否有key对应的value的值
  5. 不管memstore中有没有值,都需要去读取Hfile中的数据(再读取Hfile中首先通过索引定位到data block)
  6. 判断cache block中中是否已经加载过需要从文件中读取的bloom block和data block,如果加载过了,就直接读取cache block中的数据,如果没有,就读取文件中的block数据
  7. 将memstore和Hfile中读取的数据汇总取正确的数据返回给客户端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

list容器会了吗?一文搞定它

这里写目录标题 list 数据链式存储大小操作插入操作list数据存取list容器的反转和排序 list 数据链式存储 list的优点 1.采用动态存储分配,不会造成内存浪费和溢出 2.链表执行插入和删除操作十分简单,修改指针即可,不需要移动大量元素 缺点…

低代码开发与数智制造:数字转型的无缝结合

随着工业4.0的到来,数智制造已经成为制造业发展的趋势,而低代码开发技术则是近几年兴起的一种轻量级开发方式,这两者之间的结合将为制造业的数字化转型打下坚实的基础。 低代码开发平台有什么特点? 首先让我们来厘清一下&#xff…

STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇

STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇,板载有DS18B20和TM16504位数码管。 项目简介 单片机课课程设计,要做一个智能温控风扇,达到设定的下限温度值就开启风扇,温度在上限和下限之间就按比例输出PWM占空比控制…

基于jsp+mysql+Spring+mybatis的Springboot旅游网站管理系统

运行环境: 最好是java jdk 1.8,我在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本 tomcat服务器环…

AI回答:绩效考核有哪些方法,基本靠谱

AI回答:绩效考核有哪些方法,基本靠谱 建立有效的绩效考核机制,比较难 但没有考核机制,就无法评价优劣 趣讲大白话:赏罚两字,千古大事 【趣讲信息科技191期】 **************************** 互联网企业现在流…

11 GMM——高斯混合模型

文章目录 11 GMM——高斯混合模型11.1 模型介绍11.2 通过MLE估计参数11.3 EM求解 11 GMM——高斯混合模型 11.1 模型介绍 从几何角度来说: 高斯混合模型表示:加权平均——由多个高斯分布混合叠加而成,如图 公式可以表达为: p…

【Jmeter】提取和引用Token

1.执行获取token接口 在结果树这里,使用$符号提取token值。 $根节点,$.data.token表示提取根节点下的data节点下的token节点的值。 2.使用json提取器,提取token 变量路径就是把在结果树提取的路径写上。 3.使用BeanShell取样器或者BeanShell后…

(数组) 941. 有效的山脉数组 ——【Leetcode每日一题】

❓941. 有效的山脉数组 难度:简单 给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。 让我们回顾一下,如果 arr 满足下述条件,那么它是一个山脉数组: arr.length > 3在 0 &…

Redis指令-认识NoSQl和Redis常见的通用命令

1. 认识NoSQL 非关系型数据库 NoSQL是指一类非关系型数据库,它们采用的数据模型不同于传统的关系模型,它通常使用键值对、文档、图形等非传统的数据结构进行数据存储,不遵循预定义的模式和模型。NoSQL数据库通常分布式、高可扩展性&#xff0…

4.多线程之JUC并发编程1

1.List集合类不安全(以前单线程永远是安全的,多线程集合就不安全了) 都是ConcurrentModificationException并发修改异常,在有sout输出的情况下出来的,因为多线程边读边写 //并发情况下ArrayList是不安全的 可以用Vector在jdk1.0出来的,List1.2出来的加了同步锁 List listnew Ve…

瑞吉外卖业务开发

数据库 我电脑上的数据库登录指令:mysql -uroot -p123456常用指令:show databases、user 数据库名、show tables。 创建项目 创建完项目后,要及时检查maven仓库的配置,jdk的配置,项目的编码,如下图。 配…

数据同步智能化!利用ETLCloud自动化流程实现钉钉OA系统数据自动同步至数仓

钉钉数据同步需求 钉钉是一款企业级通讯和协同办公应用软件,钉钉为企业提供包括聊天、通讯录、日程安排、考勤打卡、审批、通知公告、文件共享、会议等功能,很多企业都在使用钉钉。 很多情况下我们需要把钉钉的数据拉取到数据库中,然后再通…

案例分享 | 汽车连接器焊锡质量检测

连接器是电脑、电视、汽车等常见产品中不可缺少的部件,主要由接触件、绝缘体与金属壳体组成,用于传输电流或信号。 汽车连接器约占全球连接器市场四分之一的份额,随着未来汽车产业的持续膨胀,市场前景广阔。连接器产品的微型化、…

RPC通用爬虫

文章目录 RPC通用爬虫一、项目案例二、Rpc原理解析三、Rpc代码分享四、自我总结 RPC通用爬虫 一、项目案例 测试网址: aHR0cDovL3d3dy5mYW5nZGkuY29tLmNuL3NlcnZpY2UvYnVsbGV0aW5fbGlzdC5odG1sP3R5cGVhPWI2N2MzYjhhZGJkY2U3NGQ 二、Rpc原理解析 图解关系: ​ 主要包括,爬虫程…

Dockerfile应用的容器化

文章目录 Dockerfile应用的容器化应用的容器化——简介应用的容器化——详解单体应用容器化获取应用代码分析Dockerfile容器化当前应用/构建具体的镜像推送镜像到仓库运行应用程序测试总结 最佳实践利用构建缓存合并镜像 命令总结 Dockerfile应用的容器化 Docker 的核心思想是…

为什么网络安全缺口大,招聘却很少?

2023 年我国网络空间安全人才数量缺口超过了 140 万,就业人数却只有 10 多万,缺口高达了 93%。这里就有人会问了: 1、网络安全行业为什么这么缺人? 2、明明人才那么稀缺,为什么招聘时招安全的人员却没有那么多呢&am…

头部大模型公司进京赶考,向量数据库成为应考神器

日前,由品玩主办的「模型思辨」国内大模型产业生态研讨会在北京举办,Zilliz 与 360 集团、阿里巴巴、昆仑万维等来自大模型产业链的头部公司及投资机构参会,会上 Zilliz 创始人兼首席执行官星爵、360 集团创始人周鸿祎、昆仑万维创始人方汉等…

C++ 类设计的实践与理解

前言 C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。本文介绍了写好C代码需要遵循的最佳实践方法,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 1. 尽可能尝试使用新的C标准 到2023年,C已经走过了40多个年头。新…

如何进行微服务测试?

微服务测试是一种特殊的测试类型,因为它涉及到多个独立的服务。以下是进行微服务测试的一般性步骤: 1. 确定系统架构 了解微服务架构对成功测试至关重要。确定每个微服务的职责、接口、依赖项和通信方式。了解这些信息可以帮助您更好地规划测试用例和测…

day09——线性回归

线性回归 一、什么是线性回归1,定义与公式2,线性回归的特征与目标的关系 二、线性回归的损失和优化原理1,损失函数2,优化算法 三、API四、实操:波士顿房价预测1,数据来源:scikit-learn2&#xf…