00:00
呃,之前呢,我们讲了一个简单的一个架构,那从简单架构里边,我们了解到整个的一个。服务是master和reading so对吧,然后之前呢,我们还讲了数据模型。数据模型里边有什么东西还记得吗?表对吧,表切分成的reading reading里面有列足对列足里面有。列对吧,还有store,还有存储呢,那接下来呢,我们接下来就要把这套东西,刚才我们所说的基础架构和表结构的内容整理到一块儿来带着大家看一下啊,它的一个完整的一个内容是什么样子的,呃,还是打开一个模板啊。首先我们所知道的h base这个东西依赖于HDFS对吧,还依赖于CK,所以呢,首先出来的应该是什么?Hfs,这是它底层的一个数据存储地,相当于啊data no呢,我画三个画五个,这个无所谓对吧,就是一个集群,OK,那这个上面我们再来聊什么。
01:14
H base的事啊,再来聊事有两个核心的组件啊,当然他这个呢,还首先依赖于我们所提到的那个什么,如cable对吧,还依赖于这个如cable,那这一套都是它依赖的第三方框架嘛,你在启动之前必须要启动的,这个没问题吧,啊,我们操作的,那接下来到我们h base启动的时候,要启动两大地条。一个是master对吧,还有一个是我们所看到的这个什么reading对吧,这个master看指向一个箭头到ZK,我们之前也提到过master呢,他工作太累了,对吧,他要把某一部分的工作交给我们所提到的。
02:01
Ableable,那我们后面会讲具体的他要帮阿玛做什么事。啊,等会儿再聊,OK,那这个master要管理什么事情?还记得吗?当时我们所聊的是不是管理这种关于DDL的一些操作啊,就创建数据库,创建表啊,当然是创建密密空间,对吧?创建表这种原数据的一个操作是不是用master来做的,对吧?那S这块做的什么事啊,他管理的是DML的一些操作吧,就跟实际数据相关的,那无非就是增删改查呗,对吧?这些东西都要找reading so啊,都要找reading so,那master呢,其实也会去管理,因为由master决定我这个reading到底要给谁来维护吧,是master说了算的,假如说你reading so挂掉了,诶我把这个reading还要调度给其他的人来维护,是不是啊,要做这个事啊,他是管理这种言数据的,好,那瑞so来管理这个数据,那他是怎么管理的呢?
03:01
他通过管理什么东西啊。叫。他要管理reading嘛,但是在reading之前,这里面还有一个东西叫h log,这个东西呢叫h log也好,有的东西叫hlo,在我们当时带大家看SDF文件夹的时候,有两个东,有个东西提醒大家要稍微记一下叫什么W。这个是干什么用的呢?叫预写入日志。理解不了这个买说的并了解吗。也不了解,那有个东西肯定了解了IDF的那个ID文件。HDFS里面的I文件,如果说你再不知道,那我就没办法,你写入日志对吧,他是不是将数据在内存当中去操作啊,但是内存是不是崩掉了之后就没了呀,对吧?他要干什么,先写到把操作记录下来吧,啊,那h base也一样,因为我们刚才写了那么多数据,发现他都没有做盘嘛,那这个时候挂掉了,数据不丢了吗?对吧,他为了做这个事儿,也就是里边要有什么。
04:11
Wa就是我们在文件夹里面看到,诶,它是这个东西呢,你写数据操作来了,我实时的要干什么,写到HDFS的,要写到HDFS要做这个事的能听懂啊,他就跟我们之前所提到的HDFS里面ID那个文件是一样的作用。啊,预写入日,好,接下来才是我们看到的什么。H reading啊,或者你把它叫做reading h是h base的意思对吧?啊,它的类呢叫h reading啊,我们一直习惯上叫它reading啊,它有一个专门的一个类啊好,那接下来这边呢,有个省略号能看到吗?说明一个reading so上可以维护多个对吧?那如果说一个reading so只能维护一个,那HVC也应该没人用了,那你装三台机器,最后只能创建三张表,而且还规定这三张表不能切分。对吧,那这个东西没人用嘛,所以它可以存多个没问题的,那我们单独的看一个h region里边还记得有什么东西吗?H reading这个地方是不是我们说了跟表有对应关系啊。
05:12
对吧?Reading一个表可以对应一个或者多个,Reading是按行切分的,也就一刀干什么?这样切的吧,啊,这样给它切的,我们之前都聊过了,OK,那这个region里边有什么东西啊。列足吧,对吧,表底下我们之前在MY当中应该聊的是列,那这个里边聊的应该是什么?列足,列足就是这个store啊,列足就是这个store啊,整个一个store,当然还有印象吗?我们reading框的是两个列组,对吧?Store框的是不是一边的呀,对吧?啊,那store存储的好这个地方呢,Store它对应的文件夹嘛。一波一一波二还有印象吗?啊,它的存储是隔离的,存储方面隔离的,隔离开的,对吧,放在不同的文件夹里,因为你在扫描的时候,假如说我们要获取INO1的数据,那你有必要扫描IN2那个文件夹吗?没必要吧,那你看这个列足的一个划分,是不是跟have当中那个分区的感觉很像啊。
06:16
你限定分区等于说多少,是不是只扫那一个分区就行了,那个分区是不是放在一个文件夹里面,只扫描那一个文件夹吧,所以很多东西都是通的吧,啊都很类似的,类似于我们上午所讲的高宽表,跟白S里面概念一样的,这边呢,它也要做切分啊,大家做做切分好,那这个是列足,Store呢,是列足啊,Store是列足,OK,那列足底下是不是存储的实际的数据了。对吧,这个时候有同学想到还有列列,我们之前提到过,对于H倍子来说,它这个列相当于H倍的表达什么。数据。对吧,我们提到过这个概念吗?啊,因为你想想看,你这个列是不是在你插入数据的时候来指定的。你在插入数据之前,人家知道你有什么联网,不知道他不像MY搜吧,但是你在插入数据之前,我知道你有多少个列组,对不对。
07:07
对吧,它是属于建表的时候来了吧,啊所以呢,这个里边接下来就实际的存储了,我们之前提到过实际的存储,存储在两个地方,一个叫。啊,一个内存一个磁盘吗?存数据不就这两个地方吗?因为是实际数据了,对吧?啊就这两个地方啊呃,在想着还有什么组件是吧?啊这个是M素,它先开始我们都是存在这个内存的,对吧,但是我们看到没有落盘嘛,啊但是到了一定的时间或者到了一定的大小,一般都是通过这两个条件来控制了,之前我们学到的过的很多东西那个。呃,什么东西啊,爱丽那个文件不也一样吗?默认一个小时或者100万条对吧。是吧,两个参数啊,要不然到了一个小时,我不管你有没有到100万条,我得给他拿过来合并一下吧,就三个人做那个事,对吧,或者是100万条可以吧,那这个地方也一样,你在内存我总有一个得干什么。
08:13
你不能说这个数据一直放在内存吧,我几十亿表数据放在内存,那谁都看不扛不住吧,对吧?啊这意思,那他要落盘啊,他要落盘,他的落盘的条件等会我们就能看到啊落盘也就是说这个从。内存到磁盘,这个叫做flash,我们之前不是看到flash吗?啊刷写啊叫刷写,那刷写下来,刷写一次是不是形成了一个文件。对吧,哎,刷写一次形成一个文件,所以说这个里边会将来会有什么。多个很多个文件吗?啊,很多个文件,但是由于刷写条件。啊,它有全局的那种刷业条件,也就是说假如说全局的什么意思啊,它有reading so级别的。当前这个so,所有的memory都要发现它,一旦触发这种条件的话,那么也就是说,有的memory是不是可能到了100兆,但有的可能才5K啊。
09:08
是不是有这种可能性,那也就将来刷写下来的这个东西,是不是有可能会产生很多的。小文件吧,啊,那小文件他要怎么办啊,合并合并呢,越来越大呢,他要做什么拆。啊,我们之前所看到的什么Li,什么comp,就是做这个事,因为你刷写下来有可能有小文件,那你小文件多了,我是不是应该合并到一块啊,那合并到一块这个文件是不是越来越大,越来越大,大到一定程度,我就干什么一刀给它干开啊,给它切开。啊,就做这个事啊,不断的那切开成两个,是不是又变成小的呀,小的又要刷写,又变成小文件嘛,又要合并嘛,合并大了又要干什么,切啊要切就是说最后发现这一个表啊,你随着越来越大的时候,微粒数越来越多,越来越多。对吧,因为表不断的扩大嘛,啊,这个切分的自己在做的啊,自己在做的OK,呃,这个落落下来啊。
10:05
M落下来,它叫这个什么?So fair,那这里边还有一个h fair是个什么东西呢?是这样的,H fair是跟tsd orc的同等的一个东西,叫什么?对,存储格式so fair只是我们在这边那个命名,它叫sofa那个一个的文件,我们就把它叫做一个sofa,但是呢,它里边内容怎么存的,是以h file这种形式来存的,它也是一个文件格式啊,一种比较特殊的文件格式,里边呢,是建制对的一个方式来存储的。啊,它的文件里边就是兼职对的一个方式,你可以去了解一下,但是这款关于h fair行面试题分的并不多啊,稍微了解一下,它里面呢,是以H,它并不是以TST什么orc帕配,不是以这种文件格式来存的。啊,它是以HLHL呢也是一个文件格式。这个能懂什么意思吗?比如说H3小时里边一个组件,OK,要注意一下,还有另外一个点so fair呢,这块我把它画在了HP这点。
11:05
对吧,但实际上它应该在哪啊。这个刷写是不是应该在这儿啊,对吧,但是它其实属于H的组件嘛,只不过说它是存在什么的。对漏上的,但对漏呢,你也不能说存在对实际上应该存在磁盘对吧?啊存在磁盘的是这个意思吗?最后呢,那存在磁盘怎么存储呢?刷写过程当中,它就会调用SDFS客户端。就是你们之前所看到的HDF写的流程,先跟内note进行交互,对吧,请求所上传,然后返回一个地址,然后就一遍一遍上传了啊,他做的这个事啊,只不过说这个事不要你用户来做,而是由VSO来做的,能听懂。啊搜你只要管理员写就行了,写完之后到了一定时间,他自己去刷,写这一块的一个操作,注意他一定会跟客户端交互,写到带登动作版,那这块呢,又结合着我们之前所学过的内容,就HDFS的一个什么写操作的一个原理啊,写操作的一个原理是这个意思,那这块呢,它会调用客户端第一个h log要实时的落下来。
12:17
对吧,你写完之后就要落盘,因为防止挂掉,要做数据恢复用的啊,数据恢复用的,那第二个多尔是不是也要写进去这块呢?都要依赖于谁啊。H base的HHDFS一个客户端啊,一个客户端啊,这个虚线呢,就是说它跟它有交互,但实际上不是s master直接跟他交互了啊,是这个地方啊,实现去做了一个交互啊好,最后还有一个我们所提到的之前还有一个遗漏的点就在于。ZK到底帮这个干了什么事?对吧,最后还有个客户端。客户端的请求先请求ZK,再直接到V,不经过master,也就是说ZK这个包h master分担了一部分功能,分担的是与客户端的一个交互。
13:09
他。ZK作为了所有客户端操作读写数据,注意是读写数据哦。操作元数你还要找他。操作元素就来找他,如果你操作的是DML,也就是说操作的是实际数据的增删改,查h master挂掉也无所谓,上午是不是说过这话对吧?啊,就h master这个没关系,等会我们把读写流程讲完之后,我们可以做测试。对吧,跟速测试啊,就是说我现在把master关掉,我读写正号啊,读写正常,因为它是跟CK进行交互的啊,跟K进行交互的啊,这个呢,是我们整个的一个逻辑啊,我们再回过头来看一下啊,再捋一下。首先第一个底层对吧,它是依赖于HDFS的,依赖于HDFS啊,所以呢,它要有电的得起来,接下来呢,上面才是我们h base h base又依赖于谁啊。
14:07
如K对吧?啊依赖于K,所以呢,如K这两个东西ZK跟HDF要先起,然后接下来聊到我们最核心的H内容了吧,两个东西,一个叫h master啊叫master或者叫h master都行,然后接下来他跟VK有交互啊,有一部分功能给他分了,我们说了是什么功能。跟客户端来说,对于表数据的一个操作分摊给了你啊,就是说客户端第一步找,无论是找master还是找那个reading so也好,都先找CK,那我们知道写API的时候。写API的时候是不是要连集群,至少有个参数连集群嘛,那写谁就行了。ZK就行了,不用写master地址不用写,因为所有的操作客户端所有操作先连ZK能听懂啊,到时候呢,写API也关注一下这个点,只要写了ZK的地址就够了,其他东西不用管啊,其他东西不用管,OK,那除了这个master之外,我们还有一个东西叫。
15:08
Reading server对吧?Reading server来维护这个region的啊,也就是一张一张的表,只不过说呢,这个表可以切分而已,对吧?所以呢,我们维护的是一个一个的region啊,一个一个的region,好,在维护region之前,我们看到了搜里边还有一个普遍的工艺叫什么。道功能叫。预写入日志吧,叫预写入日志,OK,那它的功能。干什么的?防止内存当中数据丢失的吧,啊写入操作,直接把操作写在里边啊,假如说你内存写完了之后,还没有来得及落盘的时候挂掉了,我是不是可以根据这个预写入。来给他恢复吧,啊,就跟我们所提到的HTFS里面ID那个文件是一样的,对吧?啊I文件一样的,那接下来到我们最核心的了。
16:00
啊,就是表啊,啊,那这块呢,有一个点就是。多个啊一个so呢,可以维护多个V,这肯定可以啊,我们三台机器,我们建了那么多表是吧?啊随便建无所谓的啊,可以有多个啊,那对于一个V里边。也就是表里边我们聊的是不是列足啊,所以在结构上面它叫so啊列足呢,是我们所说的逻辑上的概念嘛,啊,物理上概念呢,它叫so,这个呢,是有专门的一个类的啊,这个类的来管理的,管理着我们的一个列足啊,它的存储的,那我们知道这个store啊,是不是里面也可以有。多个吧啊,我们创建过一个的,创建过两个的,那创建三个四个也可以啊,这个都可以啊,也就是说多个,而且我们知道它在存储结构上面是分文件夹的吧,啊,存储上面是分离的,存储上面是分离的,OK好。那之后store已经到了存储了吧?底下就实际数据的存储在两个地方,一个是memory store,一个是FA文件,对吧?Store fair呢,你要注意看啊,就memory store画的有几个。
17:05
一个刷写完了接着用的。嗯。对吧,啊,刷新完了接着用的,但是缩坏了,我刷写出来就一个文件,刷写出来就一个文件。对吧,你可以刷写出来多个啊,刷写出来多个之后呢,这些东西都要h log跟这个so都要存到什么。IDFS,所以呢,更要跟IDFS客户端进行交互,最后还有我们自己操作的客户端,也就先连ZK,再连微信搜啊来操作我们的数据,整个的流程就是这个样子的啊,整个流程这个图呢,呃,要记在脑子里边。啊,记在脑子里边,本来是一张静态图,给它做成PPT了啊,应该就是PPT的时候我就不用再去画里面那个结构了啊,直接播放里面就差不多了啊,而且呢,自己也可以去放一放里面东西,就是你自己在播放这个PPT之前,你要想。有什么东西对吧,特别放在master,你想一下接下来应该出什么东西啊,自己想一想,想一想我们说的逻辑结构嘛,对吧,再对比着这个物理结构来想啊。
18:05
这个是我们所聊的详细的一个架构图啊,详细的一个架构图。
我来说两句