首页 > 其他分享 >Hbase结构再探究

Hbase结构再探究

时间:2023-09-09 19:33:26浏览次数:32  
标签:文件 存储 目录 探究 用于 Hbase 数据 HBase 结构

Hbase储存再hdfs上,这是hbase的具体文件夹

  1. .hbck:这是 HBase 的 hbase-hbck 工具生成的目录,用于存储修复 HBase 表的信息。hbase-hbck 工具用于检查和修复 HBase 表的一致性和完整性。

  2. .tmp:这是一个临时目录,通常用于临时存储数据或文件,以便后续处理。在 HBase 中,它可能用于一些临时数据的存储或操作。

  3. MasterData:这是 HBase Master 节点的数据目录,用于存储 Master 节点的状态信息和元数据。

  4. WALs:这是 Write-Ahead Logs(WALs)的缩写,用于存储 HBase 的编辑日志,记录了所有表的变更操作。这个目录存储了 HBase 中的持久化数据变更。

  5. archive:这是一个归档目录,可能用于存储过去的数据备份或归档数据。通常,这里存储了一些旧版本的数据。

  6. corrupt:这个目录通常用于存储损坏或不可用的数据块或文件。这些文件可能已损坏或发生错误,无法正常使用。

  7. data:这是 HBase 存储实际数据的目录,包含了 HBase 表的数据块和列簇。这是 HBase 中最重要的目录之一,存储了用户数据。

  8. hbase.id:这个文件包含了 HBase 实例的唯一标识符或ID。它用于标识 HBase 集群中的不同实例。

  9. hbase.version:这个文件包含了 HBase 版本的信息,包括版本号等。

  10. mobdir:这个目录通常与 HBase 的 MOB(Medium Object)存储相关,用于存储 MOB 类型的数据。MOB 是一种用于存储大型二进制对象的机制。

  11. oldWALs:这是旧的 Write-Ahead Logs(WALs)的存储目录,通常用于存储旧版本的编辑日志。

  12. staging:这是一个临时存储目录,通常用于执行一些临时操作或数据迁移。

data下面每个命名空间都是一个文件夹

其中上面两个是默认就有的,下面这个是我自定义的命名空间

每张表都是一个文件夹

.tabledesc:与 HBase 表的描述信息有关。通常,HBase 表的描述信息包括表的结构、列族信息、数据编码方式等。.tabledesc 包含了与表相关的元数据或描述数据。

下面则是具体数据

  1. .regioninfo

    .regioninfo 文件是 Apache HBase 中用于存储 HRegion 的元数据的文件。在 HBase 中,数据被划分为多个区域(regions),每个区域对应一个 .regioninfo 文件。这些区域文件实际上是存储在 HDFS(Hadoop分布式文件系统)上的,而不是本地文件系统。

    每个 .regioninfo 文件包含有关特定区域的元数据信息,这些信息包括但不限于:

    1. Region Name: 区域的唯一标识符,通常是一个哈希值。

    2. Start Key: 区域的起始键。

    3. End Key: 区域的结束键。

    4. Region ID: 区域的唯一标识符。

    5. Table Name: 区域所属的表的名称。

    6. Timestamp: 区域创建的时间戳。

    这些元数据信息对于 HBase 的区域分割和数据定位非常重要。HBase会根据这些信息来确定数据应该存储在哪个区域,以及如何进行区域的拆分和合并操作。

    .regioninfo 文件通常由 HBase 自动管理,用户不需要直接编辑或操作这些文件。这些文件位于 HBase 表的 .META. 表中,HBase Master 和 Region Servers 使用这些信息来协调数据的读取和写入操作。

  2. recovered.edits

    recovered.edits 是 Apache Hadoop HDFS(分布式文件系统)中的一个文件,通常与 HBase(基于 Hadoop 的分布式数据库)相关。它包含了 HBase 的编辑日志(edit log)的恢复部分。

    HBase 的编辑日志是一种记录了所有表的变更操作(如插入、更新、删除等)的日志。这个日志用于保证数据的一致性和持久性,以便在节点故障或其他故障发生时能够还原数据。

    recovered.edits 文件通常在 HBase 的数据目录中,用于存储在 HBase Master 启动或重新启动时,从编辑日志中恢复尚未持久化到 HFile(HBase存储文件)中的数据变更。这有助于确保在 Master 节点发生故障时,不会丢失尚未应用的数据变更。

    在 HBase 运行时,编辑日志和 recovered.edits 文件的管理是由 HBase 自动完成的,用户不需要直接处理这些文件。

  3. scoreteacher,info:是我自定义的列族,每个列族都是一个目录,而字段名和值都是储存在一个文件中,因此字段名和值都是离散的。

从上面的结构分析可以看出要想查找到一个值,必须从命名空间->表名->列族名,因为列是离散的因此hbase给出了rowkey来查找每一个cell,而不是关系型数据库中通过列名来查找值

这里可以看出列名和值为什么的离散化储存的

 

标签:文件,存储,目录,探究,用于,Hbase,数据,HBase,结构
From: https://www.cnblogs.com/liyiyang/p/17690034.html

相关文章

  • C数据结构-线性表之顺序表
    什么是线性表线性表的插入元素线性表的删除元素线性表顺序存储的缺点线性表的特点1.线性表的实例首先我们创建3个文件,分别如下:liner_data--sqlist.c--sqlist.h--test.csqlist.h//.h文件中定位数据的结构以及函数的方法typedefintdata_t;#defineN128......
  • 结构体内存对齐
    结构体内存对齐是什么?结构体内有一个或者多个成员变量,这些成员变量是要“对齐”的。这么说可能有点抽象,我们先来了解一下内存对齐的规则,以及几个概念。每个成员变量都有一个“对齐数”,这个对齐数等于其自身大小和默认对齐数的较小值。举个例子:structS{inta;char......
  • 初识python--python的选择分支结构
    python选择结构语句一、if选择结构1、ifelse结构在日常业务中,经常需要进行多条件判断,为了这种场景,引入多分支结构age=int(input('请输入你的年龄:'))ifage<18:print(f"年龄{age},未到18岁,不可使用童工!")elifage>=18&age<=60:print('年龄为%d,合法年龄......
  • 2.10 PE结构:重建重定位表结构
    Relocation(重定位)是一种将程序中的一些地址修正为运行时可用的实际地址的机制。在程序编译过程中,由于程序中使用了各种全局变量和函数,这些变量和函数的地址还没有确定,因此它们的地址只能暂时使用一个相对地址。当程序被加载到内存中运行时,这些相对地址需要被修正为实际的绝对地址,这......
  • 2.11 PE结构:添加新的节区
    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。每个节都具有特定的作用和属性,通常来说一个正常的程序在被编译器创建后会生成一些固定的节,通过将数据组织在不同的节中,可执行文件可以更好地管理和区分不同类型的数据,并为运行时提供必要的信息和功能。节的......
  • 2.10 PE结构:重建重定位表结构
    Relocation(重定位)是一种将程序中的一些地址修正为运行时可用的实际地址的机制。在程序编译过程中,由于程序中使用了各种全局变量和函数,这些变量和函数的地址还没有确定,因此它们的地址只能暂时使用一个相对地址。当程序被加载到内存中运行时,这些相对地址需要被修正为实际的绝对地址,......
  • 2.11 PE结构:添加新的节区
    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。每个节都具有特定的作用和属性,通常来说一个正常的程序在被编译器创建后会生成一些固定的节,通过将数据组织在不同的节中,可执行文件可以更好地管理和区分不同类型的数据,并为运行时提供必要的信息和功能。节的......
  • 9.9数据结构
    ADT抽象数据类型:数据抽象、数据封装特点:数据封装,实现与现实分离,信息隐藏 数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理数据项:是组成数据元素的,有独有的含义,不可分割的最小单位 在计算机中存储数据时,通常不仅要存储各数据元素的值,还要存储数据元素......
  • 在公司学习日,学习了结构思考力
    大家好,我是Edison。近日,在公司的学习日上,学习了李忠秋老师的在线直播课《结构思考力》,虽然只有短短的一小时内容,但却令我印象深刻,以至于我开始逐渐刻意训练自己的结构化思维。所谓的《结构思考力》核心内容其实来源于一本经典的书籍巴巴拉·明托的《金字塔原理》,我老早就听说过,......
  • 数据结构-封装队列
    list_queue.h#ifndefLIST_QUEUE_H#defineLIST_QUEUE_H#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#defineTYPEint// 节点结构typedefstructNode{ TYPEdata; structNode*next;}Node;// 设计链式队列结构typedefstructList......