HRegionServer 里面存放了很多的HRegion,而且每一个HRegion都有一个唯一标识(表名+开始主键+唯一ID),这个唯一标识符在每一个HRegion中都有存储。

.mata.表存的数据为HRegion(标识符)和HRegionServer的映射关系,即某一个HRegion,到底在哪一个HRegionServer中。

  .mata.是一张表,它也由许多的HRegion组成,所以在最开始数据量很少(HRegion很少时),.mata.只有一个HRegion,由于数据会不断的增加,所以会使得.mata.表不断的增加,所以.mata.也被split成许多的HRegion。为了定位这些HRegion,我们采用的就是就是_root_。

_root_表的结构和.mata.一样,里面存储的也是HRegion和HRegionServer的映射关系。不过这里的HRegion,是表.mata.的HRegion。所以根数据表保存的是元数据表的位置。_root_表和.mata.表的一个区别就是,_root_不能被分隔,只有一个。如果说_root_也变得很大了这么办呢?暂时,HBase就是这么设计的,没办法。

=============================================================================================

转自:http://www.cnblogs.com/songlee/p/5738024.html

-ROOT-表和.META.表结构详解

在《HBase技术简介》中我们知道,HBase中有两个特殊的表:-ROOT-.META.

由于HBase中的表可能非常大,故HBase会将表按行分成多个region,然后分配到多台RegionServer上。数据访问的整个流程如下图所示:

注意两点:

  1. Client端在访问数据的过程中并没有涉及到Master节点,也就是说HBase日常的数据操作并不需要Master,不会造成Master的负担。
  2. 并不是每次数据访问都要执行上面的整个流程,因为很多数据都会被Cache起来。

从存储结构和操作方法的角度来说,-ROOT-.META.与其他表没有任何区别。它们与众不同的地方是HBase用它们来存贮一个重要的系统信息:

  • -ROOT-:记录.META.表的Region信息。
  • .META.:记录用户表的Region信息。

其中-ROOT-表本身只会有一个region,这样保证了只需要三次跳转,就能定位到任意region,

一、META表结构

在 HBase Shell 里对.META.表进行 scan 和 describe :

可以看出,.META.表的结构如下:

.META.表中每一行记录了一个Region的信息。

1) RowKey

RowKey就是Region Name,它的命名形式是TableName,StartKey,TimeStamp.Encoded.

其中 Encoded 是TableName,StartKey,TimeStamp的md5值。

例如:

mytable,,1438832261249.ea2b47e1eba6dd9a7121315cdf0e4f67.

表名是mytable,StartKey为空,时间戳是1438832261249,前面三部分的md5是:

$ echo -n "mytable,,1438832261249" | md5sum   # -n选项表示不输出换行符
ea2b47e1eba6dd9a7121315cdf0e4f67  -

2) Column Family

.META.表有两个Column Family:infohistorian

其中info包含了三个Column:

  • regioninfo:region的详细信息,包括StartKey、EndKey以及Table信息等等。
  • server:管理该region的 RegionServer 的地址。
  • serverstartcode:RegionServer 开始托管该region的时间。

至于historian

That was a family used to keep track of region operations like open,
close, compact, etc. It proved to be more troublesome than handy so we
disabled this feature until coming up with a better solution. The
family stayed for backward compatibility.

大致的意思是:这个Column Family是用来追踪一些region操作的,例如open、close、compact等。事实证明这非常的麻烦,所以在想出一个更好的解决方案之前我们禁用了此功能。这个列族会保持向后兼容。

综上所述.META.表中保存了所有用户表的region信息,在进行数据访问时,它是必不可少的一个环节。当Region被拆分、合并或者重新分配的时候,都需要来修改这张表的内容 来保证访问数据时能够正确地定位region。

二、ROOT表结构

当用户表特别大时,用户表的region也会非常多。.META.表存储了这些region信息,也变得非常大,这时.META.自己也需要划分成多个Region,托管到多个RegionServer上。

这时就出现了一个问题:.META.被托管在多个RegionServer上,如何去定位.META.呢? HBase的做法是用另外一个表来记录.META.的Region信息,就和.META.记录用户表的Region信息一样,这个表就是-ROOT-表。

在 HBase Shell 里对-ROOT-表进行 scan 和 describe :

-ROOT-表的结构如下:

可以看出,除了没有historian列族之外,-ROOT-表的结构与.META.表的结构是一样的。另外,-ROOT-表的 RowKey 没有采用时间戳,也没有Encoded值,而是直接指定一个数字。

-ROOT-表永远只有一个Region,也就只会存放在一台RegionServer上。—— 在进行数据访问时,需要知道管理-ROOT-表的RegionServer的地址。这个地址被存在 ZooKeeper 中。

转载于:https://www.cnblogs.com/mrxiaohe/p/6519703.html

.mata. _root_ (转)相关推荐

  1. Scala基础 - _root_ package的作用

    2019独角兽企业重金招聘Python工程师标准>>> 在Scala中引入类时支持相对路径,例如: import play.api.libs.json._ import play.a ...

  2. 我在51CTO微职位学软考——我是mata宇我为自己代言

    雷迪森and砖头们大家好,鄙人是来自系统架构1期的mata宇同学.想必架构群里的同学百分之60的人都跟我聊过天,当然哈,上组数据是据不完全统计的,如果咋俩没聊过,您就看一乐呵就完事了. 可能还有些同学 ...

  3. 树莓派Ubuntu 16.04 MATA系统 修改用户文件夹名后,提示configure it with blueman-service...

    自从修改了树莓派的Ubuntu 16.04 MATA 系统的 /home/ 下的用户文件夹名后,使用vncserver远程操作,看到桌面每次都提示 Configured directory for i ...

  4. stata中mata语言学习-《Coding with Mata in Stata》

    mata是stata的一种编程语言,类似于c或是c++等语言,作为一门编程语言,其同样有结构,指针,类.但本篇文章主要介绍其mata以及对矩阵的操作. 本篇文章只是mata语言的一个简明教程,可以帮助 ...

  5. Stata-Mata系列(一):Mata入门

    原文链接:https://www.lianxh.cn/news/e23df70afde87.html 笔者注 Mata 是 Stata 的强大工具,是 Stata 8.0 以前 matrix 的重要扩 ...

  6. html中的mata标签详解

    总是有很多朋友问我<meta name="author" content"xxxxx"><meta http-equiv="xx&q ...

  7. 计算机编程STATA,Stata软件编程与Mata运算高级应用教程

    原标题:Stata软件编程与Mata运算高级应用教程 本文由中国科学软件网整理 教师简介 王群勇,经济学博士,南开大学数量经济研究所教授.博士生导师,天津市数量经济学会秘书长.美国堪萨斯大学经济系访问 ...

  8. html中的mata标签的作用

    标签介绍 首先是页面最上方的<!DOCTYPE html>标签.    <!DOCTYPE html>标签不属于html标签,是一种对web浏览器声明.作用是指示web浏览器页 ...

  9. mata name,property=og:title|og:image的几种说明

    版权归作者所有,任何形式转载请联系作者. 作者:行俭(来自豆瓣) 来源:https://www.douban.com/note/683833615/ <!DOCTYPE html> < ...

  10. html mata详解

    1.meta标签特性 meta标签在网站中有很强大的功效,一个设计较好的meta标签,可以大大提高网站被搜索到的可能性,对搜索引擎优化具有至关重要的作用.以下是meta标签的特性: meta标签是单标 ...

最新文章

  1. 一举拿下高可用与分布式协调系统设计!
  2. Vue Router webpack
  3. 08Spring_Spring和junit测试集成
  4. webstorm 两个文件对比不同_DOS 入门到精通 使用 fc 命令比较两个文件,并逐一显示不同之处...
  5. Go语言学习(七)-----练练笔之递归
  6. C与CPP 在线手册查找
  7. Xadmin添加用户小组件出错
  8. C语言小案例_10天从小白到入门C语言编程的学习秘籍
  9. cmake BUILD_SHARED_LIB变量
  10. Bootstrap导航栏注释
  11. jQuery学习(三)—jQuery使用步骤以及注意事项
  12. 中兴手机数据通道打不开_换了个新手机
  13. R中读取文件,找不到路径问题 No such file or directory
  14. 图像特征描述_如何判断ORB特征点的好坏(得分)_FAST_SCORE对比HARRIS_SCORE
  15. 价值4800的电销语音机器人完整版源码+文字教程
  16. 协程与kotlin协程挂起
  17. Java虚拟机面试问题
  18. SetContentView源码解析
  19. 解决File.Delete()删除不掉文件
  20. Android中EditText中文英文长度控制

热门文章

  1. Hexo站点建设之——修改网站图标
  2. 睿尔曼超轻量仿人机械臂--集成应用真空吸盘
  3. 计算机组成原理名词重点
  4. ⚠️ 关于掘金社区 CDN 开启防盗链的公告
  5. Linux下apache防恶意访问(攻击)脚本
  6. leetcode日记01
  7. 数学建模之模拟退火算法(含matlab代码)
  8. Unity 清理掉项目中垃圾文件——UnityAssetCleaner
  9. 用Python制作塔防小游戏
  10. codeforces 1148E- Earth Wind and Fire