一、hbase的底层结构

Hbase的存储默认为hdfs的/hbase目录,可以通过hbase-sit.xml配置。

/hbase/archive (1)

/hbase/corrupt (2)

/hbase/data/default/TestTable/.tabledesc/.tableinfo.0000000001 (3)
/hbase/data/default/TestTable/fc06f27a6c5bc2ff57ea38018b4dd399/info/

2e58b3e274ba4d889408b05e526d4b7b (4)

/hbase/data/default/TestTable/fc06f27a6c5bc2ff57ea38018b4dd399/
recovered.edits/340.seqid (5)

/hbase/data/default/TestTable/fc06f27a6c5bc2ff57ea38018b4dd399/.regioninfo (6)

/hbase/data/default/TestTable/fc06f27a6c5bc2ff57ea38018b4dd399/.tmp (7)

/hbase/data/default/TestTable/fc06f27a6c5bc2ff57ea38018b4dd399/.splits (8)

/hbase/data/default/TestTable/fc06f27a6c5bc2ff57ea38018b4dd399/.merges (9)

/hbase/data/hbase/acl (10)
/hbase/data/hbase/meta (11)
/hbase/hbase.id (12)

/hbase/hbase.version (13)
/hbase/MasterProcWALs (14)
/hbase/oldWALs (15)
/hbase/.tmp (16)
/hbase/.trashtables/data (17)

/hbase/WALs/tins-donot-rm-test-hb1-004.hbase.9b78df04-b.rds.aliyuncs.com,16020,1523502350378/tins-donot-rm-test-hb1-004.hbase.

9b78df04-b.rds.aliyuncs.com%2C16020%2C1523502350378.
default.1524538284034 (18)

(1) 进行snapshot或者升级的时候使用到的归档目录。compaction删除hfile的时候,也会把旧的hfile归档到这里等。

(2) splitlog的corrupt目录,以及corrupt hfile的目录。

(3) 表的基本属性信息元文件tableinfo。

(4) 对应表下的hfile数据文件。
(5) 当splitlog发生时,一个RS的wal会按照region级别split WALs写到对应目录下的的recovered.edits目录上,使得此region再次被open的时候,回放这些recovered.edits 日志。

(6) regioninfo文件。

(7) compaction等的临时tmp目录。

(8) split时临时目录,如果上次region的split没有完成被中断了,这个region再open的时候会自动清理这个目录,一般不需要人工干预。

(9) merges时的临时目录,和split一样,如果没有正常完成的时候被中断了,那么他会在下次被open的时候自动清理。一般也不需要人工干预。

(10) acl 开启HBase权限控制时的权限记录系统表

(11) meta 元数据表,记录region相关信息

(12) hbase.id 集群启动初始化的时候,创建的集群唯一id。可以重新fix生成
(13) hbase.version hbase 软件版本文件,代码静态版本,现在都是8
(14) master执行过程程序的状态保存,用于中断恢复执行使用。

(15) oldWALs 历史wal,即wal记录的数据已经确认持久化了,那么这些wal就会被移到这里。splitlog完成的那些就日志,也会被放到这里。

(16) tmp 临时辅助目录,比如写一个hbase.id文件,在这里写成功后,rename到 /hbase/hbase.id

(17) /hbase/.trashtables/data 当truncate table或者delete table的时候,这些数据会临时放在这里,默认1小时内被清

(18) 记录着一台RegionServer上的WAL日志文件。可以看到它是regionserver名字是有时间的,即下一次启动时RS的wal目录就会使用新的目录结构存放wal,这个旧的RS wal 目录就会被splitlog过程拆分回放

HBase涉及的主要文件及用途

HDFS静态文件,HDFS上的HBase 数据完整性

1. hfile文件:数据文件,目前最高版本也是默认常用版本为 3。 hfile文件结构细节可以参考官网http://hbase.apache.org/book.html#_hfile_format_2。我们这里逆向生成元数据主要使用到了HFile fileinfo的firstkey、lastkey信息。

2. hfilelink文件: 在hbase snapshot时用到, migration upgrade 也会使用到。很少碰到这类文件的运维问题,这里不作过多介绍。

3. reference文件:用来指定half hfile,一个region有reference时,这个region不能split。split/merge会创建这个。进行compaction后生成新的hfile后,会把这个reference删除。hfile的reference文件名格式一般是 hfile.parentEncRegion。如:/hbase/data/default/table/region-one/family/hfilename。其region-two有reference hfile文件名格式为:/hbase/data/default/table/region-two/family/hfile.region-one 通常无效引用就是 region-one的hfile不存在了,那么这个引用就会失效。他的修复方法一般是把reference无效的引用移除。

4. ".regioninfo" 文件,保存着 endkey/offline标志/regionid/regionName/split标志/startkey/tablename等

5. tableinfo文件这类文件保存着 tableName/table属性信息/table级别config信息/family信息。其中family信息保存着 famliyName/famiy属性/famliy级别config信息等。

通常,table属性有:REGION_MEMSTORE_REPLICATION,PRIORITY,IS_ROOT_KEY等,一般这些属性默认也是根据配置的一样。family属性有:BLOCKSIZE,TTL,REPLICATION_SCOPE等,一般属性是根据配置使用默认的。

6. hbase:meta表数据内容格式

regionname, info:regioninfo, regioninfo的encodeValue值

regionname, info:seqnumDuringOpen, 序列号

regionname, info:server, region所在的server名

regionname, info:serverstartcode, regionserver 启动的timestamp

hbase_hase的底层结构相关推荐

  1. 小码哥iOS学习笔记第八天: block的底层结构

    一.最简单的block 1.最简单的block结构 ^{NSLog(@"this is a block");NSLog(@"this is a block"); ...

  2. [java] 虚拟机(JVM)底层结构详解[转]

    [java] 虚拟机(JVM)底层结构详解[转] 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领 ...

  3. HP-lefthand底层结构具体解释及存储灾难数据恢复

    HP-lefthand底层结构具体解释及存储灾难数据恢复 一.HP-lefthand的特点 HP-lefhand是一款很不错的SAN存储,使用iscsi协议为client分配空间. 它支持RAID5. ...

  4. 从底层结构开始学习FPGA(5)----移位寄存器

    文章目录 系列目录与传送门 一.移位寄存器SRL 1.1.概述 1.2.概念 1.3.应用 1.4.结构 1.5.级联 三.移位操作 3.1.静态操作(移位长度固定) 3.2.动态操作(移位长度可变) ...

  5. 从底层结构开始学习FPGA(4)----MUX多路选择器(Multiplexer)

    文章目录 系列目录与传送门 一.什么是MUX 二.FPGA内部的MUX 三.总结 系列目录与传送门 <从底层结构开始学习FPGA>目录与传送门 一.什么是MUX 多路选择器MUX是一个多输 ...

  6. 从底层结构开始学习FPGA(1)----可配置逻辑块CLB(Configurable Logic Block)

    文章目录 系列目录与传送门 一.CLB概述 二.SLICEM与SLICEL 三.查找表LUT 3.1.移位寄存器SRL 3.2.分布式DRAM 四.多路选择器MUX 五.存储单元Storage Ele ...

  7. 从底层结构开始学习FPGA(8)----Block RAM(BRAM,块RAM)

    文章目录 系列目录与传送门 1.什么是BRAM 2.BRAM的组成 3.BRAM的使用 3.1.RAM 3.2.ROM 3.3.FIFO 4.一些需要注意的 4.1.自带的输出寄存器 4.2.BRAM ...

  8. map、set(底层结构)——C++

    文章目录 4. 底层结构 4.1 AVL 树 4.1.1 AVL树的概念 4.1.2AVL树节点的定义 4.1.3 AVL树的插入 4.1.4 AVL树的旋转 1. 新节点插入较高左子树的左侧---左 ...

  9. 从底层结构开始学习FPGA----Xilinx 7 系列 FPGA 的逻辑优势

    文章目录 摘要 介绍 7系列 FPGA 中的Slice架构 常见的Slice资源用法 控制信号 额外资源的好处 结论 本文主要翻译自<WP405----Xilinx 7 Series FPGAs ...

最新文章

  1. 写着简单跑得又快的数据库语言 SPL
  2. 每日一皮:当我修复一个隐藏Bug时,陷入了死循环中....
  3. 网络推广运营期间如何提升用户增长水平促进企业稳步推进网络推广
  4. python global用法_14_手把手教你学Python之函数(下)
  5. zTree 异步加载 添加子节点重复问题 .
  6. 【模型解读】从2D卷积到3D卷积,都有什么不一样
  7. 非专业转行python的几点建议
  8. 关于python的全局变量和局部变量、以下描述错误的是_Python:全局变量与局部变量的问题...
  9. mysql 报表统计sql使用实例_mysql 案例~mysql元数据的sql统计
  10. qdu-凑数题(01背包)
  11. 查看pcl版本 linux,成功安装 linux pcl (1.8.1版本) python-pcl
  12. SDL附着window窗口的方法
  13. codeforces 665A Buses Between Cities
  14. python将多重列表中的成绩按大小输出_Python编程从入门到实践-连载5(字 典)
  15. 高质量程序好文分享之王垠《编程的智慧》
  16. coolfire的八篇入门文章(.txt)
  17. 图像处理小tip——中值滤波的多种实现(包括快速中值滤波算法)
  18. python求x的y次方logn_次方计算器
  19. 跨考中科院计算机 学硕,【20082P】中国科学院大学心理学考研学硕认知神经科学学姐:放弃保研,跨考二战上岸...
  20. java中验证国际手机号码

热门文章

  1. 平板电视全攻略 液晶电视VS等离子电视
  2. 陕西电大成考计算机考试模拟题,山东广播电视大学成人教育2020学年计算机应用基础-考试...
  3. 汇编学习笔记:对抗反汇编实验2019092801
  4. 【记得就更新】有点经典,串串烧
  5. ‘0’ ‘\0’ 0 “0” 四个区别
  6. 艾永亮:锤子手机的六年,罗永浩的smartisan最终为何失败
  7. 在华美的落幕中起航……
  8. 新功能: 阿里云爬虫风险管理利器 - 实时日志分析 (一)
  9. UiBot 数组遍历
  10. c#版本23个设计模式