00:01
好,我们介绍完master的详细架构之后呢,接下来我们一起去看一些细节啊,那首先第一个细节呢,我们来介绍一下这个ma表啊,这个MAT表呢,诶,首先我们给了你一个警告,不要去修改这个表啊,这个道理其实很简单,这个表呢是系统的表啊,不是给我们用户来用的,你要是人为的去改这个表啊,会出现一些未知的bug,并且呢,你很难去改这个表,这个表呢已经在我们的类似的命令当中已经被过滤掉了啊,并且呢,它所处的命令空间也比较特殊,它所在系统h base的这个命名空间里面,那如果你要想找这个表的话,还是能够找得到的,它的本质跟H其他表格呢是一样的啊,我们呢,可以通过啊master的这个页面啊,16010来去找到这个表,在上面呢是reading server,小弟啊,Backup master,再往下呢,就有一个叫table啊,这就是我们的表格,你要是点这个user table,那就是用户表格,这里面呢有我们创建的big data person和big data student,那对应这个地方呢,有system。
01:01
Tables啊,系统表格,那这系统表格里面第一个就叫me啊,这就是我们的M表,你点开之后呢,它会显示,现在呢,它只有一个region啊,只有一个region,这个region呢,被我们放到了哈杜普102上面啊,可以看到它就是我们一个常规的一个表格啊,常规的一个表格好我们再回退回来啊,那继续往下,这个表里面存了什么东西呢?那我们都知道h base的表格啊,分为roll k和列,对不对?首先是它的RK是存什么东西的?它的RO key呢?由table region start k和reading ID组成,注意啊,这个table可不是他自己啊,它叫原数据表,这个table指的谁呢?指的是我们存的别的用户表格,比方说你的呃,Be data student和big data port啊,我们呢,可以把这个东西给截一下啊,用我们的一个截图软件。好,定在这里啊,它呢存的就是三个信息,那这三个信息在哪可以找到呢?还是回到我们的这个master页面里面啊,Master页面里面呢,我们来给大家演示一下,找一个用户表格对吧,User table,那我们呢,就找这个big data student对吧?你点开再点开这个big data student里面啊,你往下翻,往下翻它这边呢,会有table res啊会有table res,好,它的三个信息就分别代表了。
02:19
Table,那就是这个big data student对不对,然后下一个叫reading star k reading start k,哎,有这么一个空,那这中间有一个空啊,两个逗号之间可能比较小,比较小啊,我给你放大一下,你可能看到。在这看到没有,哎,Big date student中间有一个空,这个空是什么?这个空就是start k啊,就是start k,我们现在呢,只有一个region,所以它一个region进的起始就是为空的啊,如果它有多个K的话,这边有start k和N的K,那它就不为空了啊,你比方说你中间切开对吧,111啊,一串柔K切开,那小于这个ROK的就在下面,大于这个ROK的就在下面,那下面这个region的star k就是它了啊就是这么来的,最后一个呢,是region的ID啊region的ID呢比较长,我们可以看到它是由一个类似时间串加一个随机的一个字符串组成的啊,为了唯一标识这么一个region啊,就这么来命名的,好,那我们这个M表里面的K呢,存储的就是这些信息,好,那对应它的value存储哪些东西呢?我们回到这个文档里面。
03:23
它的value里面呢,分为一个列足下的几列,它的列足呢就叫in for啊,列足就叫in inform,好,我们根据它的K可以知道这一行表示的信息是什么,这一行表示的信息就是在进入这个表格的region。哎,你看一下是不是这个道理。对吧,这个表格呢,一行数据代表的就是一个表格里面的一个region啊,一个region,一个region进行存储的,好,那它第一列的信息呢,存储的就叫region,为当前region的一个信息,这里面呢,存储了一个叫region的一个info对象啊,这样的话呢,它跟代码彼此之间好交互一点,类似存一个对象,当然也是经过序列化的,再下一个呢,存的叫info server啊,列族名称叫info,列名叫server,那这个呢,就存储当前region所处的region server信息,包含有这个region server的端口号,就是它的具体位置。
04:16
当前这个region有哪个region server管理,并且有连接的具体地址啊,这就是我们的,哎,存储的这个server的信息,好对应我们前面讲到的负载均衡器,哎,你马上就想到了负载均衡器怎么实现,是不是就读这么一个信息啊,你看它遍历每一行数据,就能够得到每一行,每一个region所处的region server,简单统计一下就知道它是否负载均衡了,可以通过修改这么一个mate表,这里面的东西呢,就能够达到一个负载均衡,那如果不均衡的话,把这个server信息改成另外一个瑞金server。就可以解决了啊,这是第二个信息,第三个信息呢,叫serve start code啊,指的是当前reading被分配到该reading server的一个起始时间啊,会简单的记一个时啊记一个时好这三条信息呢,是我们的基础信息,除了这三条基础信息之外,还会有一些额外信息,比方说当一个表它处于一个切分的状态的时候,进region的一个切分,Region切分呢,我们在之前给大家介绍过啊,呃,只是没有细说啊,我们后面在进阶原理的后面会详细去讲这个reading的一个切分,具体的原因呢,就是这个表啊数据量越来越多。
05:24
如果它数据量过大的话呢,放在一个region里面,就对应一个文件夹里面,不方便,所以我们叫它给切分啊,就把它切分,如果切分的话,会多出两列,一个叫region SP a,一个叫region SP b,对应的一个切分信息啊切分信息,切分的当前的region的一个信息,你看到没有,这个h region for跟它的for是一个道理,对吧?它有两列的话,就对应切分之后的两个region的一个信息啊,如果拆分结束的话呢,会删除掉这两列啊,删除两列好,这是我们ma表的一个记录啊,Ma表一个记录,那除了ma表记录之外呢,我们master里面的一些细节呢,还包含一些这些路径的一个问题,对不对,咱们都给大家找一下啊,都给大家找一下。
06:07
首先这个原数据表存在哪啊?一它是怎么存储的?我们来到对应的HD这边,首先呢,这个h base是我们存储的一个根目录,这个参数呢,在配置h base里面的时候已经配置过了,如果你要查表格数据的话,统一都在这个date文件夹里面,在date文件夹里面,首先这个地方它给我们展示的是命名空间的名称,这叫命名空间的名,你可以看到系统表的命名空间也无外乎就在这个地方,如果你要找mate表里面存储的数据的话,就在这个base点开,有这个M表啊,有这个M表,这个地方有一个数字,这个数字是什么?是mate表的region啊,Mate表的region名region ID,你点开之后,这里面有对应的一个列足信息啊,列足信息对吧?我们刚才主要介绍的就是这个in for列组。对吧?啊,就这个音爆列组啊,我们主要存到也是来看这里面的一个信息,这在里面就是文件了啊,Region里面就是具体的文件了啊,我们看呢是看不懂的,对不对啊,看不懂啊,只能看懂一些大概的这些东西,对吧?啊可以呢,想象一下啊,先看不懂,可以想象一下,跟我们刚才介绍内容呢,是差不太多的啊好,我们再回退一下啊嗯,除了这个系统的命名空间里面之外呢,还可以给大家看一些能够看懂的,比方说big data面的student,这个就能看懂了,这个是什么?这个是region的ID啊,Region ID region的那个编号啊,点开region之后,里面是列足,列足切分store对吧?啊,列足切分ino有MSD,你点ino ino里面呢,这个就叫store fair啊,就是我们具体存储的数据了,一样的道理,它也是经过序列化的,看不太懂对吧,看不太懂,我们之前呢,有放过什么1001的UOK啊,只能看懂这几个单独的数字了啊,别的呢,也不太能够看懂,好,这是它存储的一个具体结构,那还有一部分。
07:56
内容呢,是我们的wal预写日志啊,那这部分内容呢,存储在另外一个文件夹里面,对应在哪呢?我们来找一下。
08:05
回到h base的根目录下面,那上面呢,有一个叫master day的一个东西,那存储了跟master相关的一个东西啊,注意不是这个预写日志啊,不是这个预写志,这个预写日是我们后面要讲的reading serve的预日志,在这个master data里面还有一个预写志啊,这个才是我们master的预写日志啊,你点开之后,这里面是master预写日志,给master做一个标记,这个master呢,现在是102的端口号是10000,后面是它的一个类似时间串的一个标记啊,你打开之后里面有具体的一个数据信息啊,这就是我们的这个数据信息啊,它这里面呢,还没有什么特别多的一个东西啊,类似呢,有一点这个啊。这应该是有缓存了啊,我们刷新一下再点开看。对吧,啊,它里面呢,就这么一点东西啊,因为我们还没有呃频繁的去操作这个东西呢,对吧,刚刚刚开机啊这个呃,我们的h base啊,所以呢,里面没有太多的一个信息啊。
09:00
好,那这个呢,就是我们master里面相对应的一个管理,最后的时候呢,还给大家提了一个注意啊,提了一个注意,我们也来一起看一下,呃,我们呢,之前在API里面已经大量的进行了一些操作,比方说创建表格,修改表格以及写入数据,删除数据,对吧?呃,当时在写操作的时候呢,我们就使用了两个对象,一个叫adin,一个叫table,不知道还记不记得连接里面有两个属性,一个叫admin,一个叫table,好,这个admi和table正好对应什么呢?对应两种连接方式,Adin连接的就是master啊,Adin连接的就是master,而table呢连接的是reading so,所以这里呢就给大家详细介绍了,在客户端对原数据进行操作的时候才会连接master,就是说你去使用那个admi啊,执行一些命令的时候,它才会去连接这个master。如果是对数据进行读写的话呢,是直接连接组K来读取目录的啊,是直接连接组K读取目录的,那对应的就是might region serve节点的一个信息啊,它是直接连主K,不会来连master了啊,你不要去麻烦master,这个对应的呃,Region serve的信息啊,都存在主K里面,它是直接连主K的啊,这里面会记录ma表的位置啊,直接读取即可,不需要访问master,这是我们默认的情况下啊,默认的情况下,一直以来h base都是采用的这种形式,它这样做呢,可以减轻对master的一个压力啊,Master不用去操作这个事了,那相对于呢。
10:30
哎,Master呢,就可以专注于ma表的一个读写操作啊,客户端呢,可以直接读取这个MAT表啊,相对呢方便一点,然后在h2.3版本的时候呢,更新了一个新的模式,这个叫master注册表模式。Master注册表描式呢,客户端就直接可以访问master来读取me表信息了,如果你这样操作呢,它会加大master的一个压力啊,但是呢,能够减轻组K派的一个压力啊,这个呢就看你一个选择了啊,但是我个人认为啊,像这种太新的东西呢,还是目前啊,不推荐大家去使用啊,虽然这里呢,我们会依赖于主K伴,给主K伴加大压力啊,但是呢,主K伴这个本来这个框架设计出来啊,它这个功能啊就是比较强大的啊,咱们在后面呢,会讲具体的读写流程,在读写流程里面会告诉你它跟组片到底在干嘛啊,其实说是访问组课片比较多啊,但是呢,压力其实不是很大,那是一个重量级的连接对不对,它的重量级不在于跟主K派交互上,而在于后面一个内容啊,而在于一个缓存上面,咱们后面呢会详细介绍,这里呢,就是先给你提一个醒啊,先给你提醒这件事儿其实还蛮重要的啊,是我们哎h base里面一个比较重要的一个逻辑啊,你在操作admin的时候才会去连接。
11:43
Master,你如果操作table的话,是直接跟主K,然后跟region server进行交互的啊。好,这是我们master介绍的一些补充信息。
我来说两句