`
韩悠悠
  • 浏览: 839733 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hbase学习笔记4-Hbase存储结构数据模型

 
阅读更多

 

HBase的存储分为TableregionstoreMemStoreStoreFileHFile。下面分别讲

 

 

 

 

 

TABLE

HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(Column family),一行由RowKey 时间戳,若干个列组成。除了rowkey和时间戳外,其他的列称为列族,他的命名有一定的规范。
rowKey
就像关系数据库的主键,用来检索记录。table中所有的记录按rowkey来排序,访问hbase表的记录有三种方式,分别是
1 通过单个row key访问
2
通过row keyrange
3
全表扫描

 

 

 

 

 

时间戳:用来区分同一份数据的版本。并且按顺序排序,每次查询都将返回最新版本的数据。

Region

table
region组成,刚开始table就一个region,随着table中的数据增大,到大到一定程度时,hbase会将region切分为两个相等大小的region region是分布式存储和负载均衡的最小单元,即不同的region可以分别在不同的Region Server上。相同的region不能拆分。

 

 

 

Store

region
是分布式的最小单元,单不是存储的最小单元,每一个region有一个或多个store组成,至少是一个storehbase会把一起访问的数据放在一个store里面,即为每个ColumnFamily建一个store,也说明一个store保存一个ColumnFamily。也说明如果有几个ColumnFamily,也就有几个Store。一个Store由一个memStore0或者多个StoreFile组成。

 

 

 

MemStore

memStore 是放在内存里的。保存修改的数据即keyValues。当memStore的大小达到一个阀值时,memStore会被flush到文件,即生成一个快照。目前hbase 会有一个线程来负责memStoreflush操作。

 

 

 

StoreFile

memStore内存中的数据写到文件后就是StoreFileStoreFile是一HFile的格式保存。

 

 

 

HFile

HFile
HBase的存储格式。是键值对的格式,键值对都是字节数组。HFile除了存储键值对,还需要存储键值对的索引信息,主要包含六个部分。

 

Data Block 段–保存表中的数据,这部分可以被压缩

 

Meta Block (可选的)–保存用户自定义的kv对,可以被压缩。

 

File Info 段–Hfile的元信息,不被压缩,用户也可以在这一部分添加自己的元信息。

 

Data Block Index 段–Data Block的索引。每条索引的key是被索引的block的第一条记录的key

 

Meta Block Index (可选的)Meta Block的索引。

 

Trailer– 这一段是定长的。保存了每一段的偏移量,读取一个HFile时,会首先读取TrailerTrailer保存了每个段的起始位置(段的Magic Number用来做安全check),然后,DataBlock Index会被读取到内存中,这样,当检索某个key时,不需要扫描整个HFile,而只需从内存中找到key所在的block,通过一次磁盘io将整个 block读取到内存中,再找到需要的keyDataBlock Index采用LRU机制淘汰。

 

HFileData BlockMeta Block通常采用压缩方式存储,压缩之后可以大大减少网络IO和磁盘IO,随之而来的开销当然是需要花费cpu进行压缩和解压缩。

 

 

 

分享到:
评论

相关推荐

    HBase学习笔记(个人整理)

    【HBase基本概念】 ...总结来说,HBase作为NoSQL数据库,以其特有的列式存储、高扩展性和高可用性,成为处理大规模结构化数据的理想选择。理解和熟练运用HBase,对于大数据开发者和架构师来说至关重要。

    Hadoop之HBase学习笔记

    【标题】"Hadoop之HBase学习笔记"主要聚焦于Hadoop生态中的分布式数据库HBase。HBase是一个基于Google Bigtable理念设计的开源NoSQL数据库,它运行在Hadoop之上,提供高性能、高可靠性以及可水平扩展的数据存储能力...

    hbase-1.2.6-bin+src.tar.rar

    HBase的数据模型在源码中主要体现在`org.apache.hadoop.hbase.regionserver`包下的`Region`类,它是实际存储数据的单元,包含对行、列的管理。 3.2 操作API 客户端与HBase交互的API在`org.apache.hadoop.hbase....

    Hbase与zookeeper笔记备份.rar

    1. 数据模型:Hbase采用行键(Row Key)、列族(Column Family)、列(Qualifier)、时间戳四元组来组织数据,这种模式适合稀疏、多维度的数据存储。 2. 数据分布:Hbase的数据分布在HDFS上,通过行键进行分区,...

    hadoop,hive,hbase学习资料

    4. **Hive学习笔记.pdf**:Hive的学习笔记通常会涵盖HQL(Hive Query Language)、表的创建与管理、数据加载与查询优化等内容,适用于数据分析人员。 5. **分布式并行数据库集群在海量数据处理上的应用.pdf**:这份...

    Hadoop学习笔记

    这个“Hadoop学习笔记”涵盖了Hadoop生态系统中的核心组件,包括HDFS(Hadoop分布式文件系统)、HBase(一个分布式、列式存储的数据库)、Hive(数据仓库工具)以及Spark(一个快速、通用且可扩展的数据处理引擎)。...

    hbase 相关的笔记

    通过学习HBase,我们可以更好地理解和掌握分布式大数据存储的原理,提高处理海量数据的效率。这份"Hbase相关的笔记"很可能包含了关于HBase的基础概念、架构、操作和优化等内容,是深入学习HBase的好资源。

    传智黑马赵星老师hadoop七天课程资料笔记-第六天(全)

    5. **hbase存储结构.png** 和 **hbase存储结构.png** - 可能是关于HBase在HDFS上的物理存储方式,包括HFile和HLog的格式,以及如何进行数据压缩和分布。 6. **第六天-HBase.ppt** - 这个PPT很可能是课程的主要内容...

    使用SpringBoot开发的基于HBASE的大数据存储分布式云计算笔记(后端).zip

    HBase的数据模型由表、行键(Row Key)、列族(Column Family)和列(Qualifier)组成。设计良好的行键能够帮助我们快速定位数据,而列族和列则用于组织和存储具体的数据。在SpringBoot中,我们可以通过定义实体类并...

    redis学习笔记Redis.md

    ### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...

    hbase简介共8页.pdf.zip

    HBase通常用于存储非结构化的和半结构化的数据,例如日志数据、传感器数据等。它的核心特性包括行键、列族、时间戳和版本,这些元素使得HBase在大数据领域中独具优势。文档可能涵盖了HBase如何与Hadoop生态系统集成...

    Redis学习笔记.pdf

    文档型数据库以文档形式存储数据,通常存储为JSON、XML等格式,适合于存储半结构化数据,查询效率较键值存储更高。代表产品有MongoDB、CouchDB、MongoDb(4.x)、国内开源的SequoiaDB等。 图形数据库通过灵活的图形...

    hbase第04天

    它们会介绍HBase的设计理念、架构、表模型、数据存储、数据读写机制以及如何进行数据查询。此外,还会讨论HBase与Hadoop的关系,以及如何在大数据环境中部署和管理HBase集群。 "图画.png"可能是对HBase架构或者工作...

    集合、NIO、Netty、Thread、MySql、Hive、HBase、Kafka、Spark、Fink等学习笔记.zip

    集合是Java编程中不可或缺的一部分,...这些学习笔记涵盖了Java开发、分布式系统、大数据处理和实时流计算等多个领域,是提升技术能力的好资源。通过深入学习和实践,你可以构建扎实的技术基础,适应不断变化的IT环境。

    大数据技术原理学习笔记.docx

    大数据技术原理的学习是理解现代信息技术的关键部分,它涵盖了数据的收集、存储、处理和分析等多个环节。本笔记基于林子雨老师在MOOC上的《大数据技术原理》课程,旨在为IT从业者和大学生提供一个全面了解大数据的...

    大数据学习笔记.zip

    大数据学习笔记.zip是一个压缩包,其中包含了关于大数据技术的学习资料,特别是聚焦于Hadoop、HBase、Kafka和Flume这四个重要组件。这些技术都是大数据处理和分析领域中的核心工具,广泛应用于海量数据的存储、实时...

    大数据技术学习笔记1

    大数据技术学习笔记1涵盖了大数据技术的基本概念、Hadoop 生态系统、MapReduce 算法、Spark 框架、分布式计算平台、NoSQL 数据库、数据处理、数据挖掘等多个方面,能够帮助读者更好地理解大数据技术的基本概念和应用...

    3.Hadoop学习笔记.pdf

    它特别适合于存储非结构化和半结构化数据,并且能够存储和运行在廉价硬件之上。Hadoop具有高可靠性、高扩展性和高吞吐率的特点,因此它成为了处理大数据的理想平台。 Hadoop的核心组成部分包括: 1. HDFS(Hadoop ...

    Hadoop数据分析平台学习笔记

    ### Hadoop数据分析平台学习笔记 #### 一、Hadoop概述 **Hadoop**是一个开源软件框架,用于分布式存储和处理大型数据集。它的设计灵感来源于Google的论文,其中包括Google文件系统(GFS)和MapReduce计算模型。...

Global site tag (gtag.js) - Google Analytics