00:00
好,刚才呢,我们是聊到了,他将数据写到内存当中,他就反馈给客户端已经写完了吧,但是这个事情对于客户端来说,这个写操作是完了,但是对于h base来说,这个数据这个事情并没有完,对吧,而对于h base来说,他一定要将这个数据写到HDFS。这个才算结束吧,那我们就看一下,哎,它什么时候会触发这个memory store形成一个一个的文件呢?啊,这个就是它的一个SH的一个过程,Flash的一个过程,那我们看一下这边给大家提供了这个。H base-default.xml就是它的一个默认配置,就这个flash呢,它也是有相应的配置的,对吧,它肯定有时间啊,什么大小啊这些东西来控制的,这能理解吧,啊,不可能说一直在让它增大,增大一下对吧,它肯定有什么时间,然后还有什么大小来控制的,那都在这个s base before的这个文件里面。想着呢,那这个怎么来的,你去解压一下这个包看一下吧,直接用360打开,你随便找一个。
01:03
这个还这么慢是吧。点开,然后随便找一个力,然后应该他里边是有的。Come,再用什么?压缩浏览啊,这是不看是吧。哎。这去哪了,这磁盘了是吧,得重新进一下,在这找一下是吧。这个好吗?这个包来,然后打开。在这,那我把这个拿出来跟大家对比一下是吧。这个东西给他拿到桌面,因为我这个里边有了,要不然就覆盖了是吧,直接拿到桌面。在这。给它拖过来好,那大家知道这个东西去哪找的,然后我把这个打开。这是相应的一个配置,然后我把我给大家提供的一个打开啊,看看有什么区别。
02:04
这里面我加了一些注释,当然我从网上下下来的时候,就有网上的人就加了一些注释,然后我在备课的过程当中呢,我把我所需要的一些属性也加了一些中文注释,那大家看的时候比较方便一点啊,比较方便一点来对比一下这个。实要它对比一下,就是说明我没有改这个内容啊,不是说这里边属性是我自己身身搬硬造出来的啊,你看一下第一个什么H贝time电压是吧,H被time电压,然后什么h root电压,Root电压啊,但是对比呢,所有的属性都在啊,大家要知道这个默认的配置文件在哪找的啊,大家看了在那个。com文件里面是不是有啊,不光那个common点那个包啊,还有很多包都会依赖这个配置文件嘛,很多包里面都有,很多代码里面都有,OK,然后我们要看什么东西呢?刚才不是说那个flash过程嘛,它有相应的属性对吧,直接CTRLF找那个。Flush。来,首先找到了。这个。
03:02
memory.size对吧?这个东西是reading so全局的memory大小,然后它超过了这个值的话,就会出发flash,而且它触发的是so级别的一个flash,那这个大小默认值看一下是多少呢?堆内存的40%。就是说这个地方看啊,跟这个地方要结合在一块。这不是reading so吗?对吧?Reading so里不有多个reading吗?有很多吗?每个里面不是有一个一个的缩吗?缩是不是有有内存存储来呀,它是这些个内存加在一块。到了这个当前节点呢?D、内存的40%。它就会触发flash。它是不管你这个里面小的有多小,他不管你,他全局到了40%之后,他就全部要发写,全部要发写是这样的,这是第一个,第二再来看。
04:02
这个能理解吧,就是说C内存都超过40%了,他要进行刷写的对吧,跟内存有关的嘛,因为你数据总放在内存有问题啊,肯定要一写到磁盘的。好,那接下来来看找还有那个。这个是一个安全机制,到时候大家可以自己看一下。好,这第二个。我们之前提过,那出发flash要么时间要么大小,对吧,刚才是不是大小啊对对大小,那这个地方呢。时间来控制的。如果说有东西超过一个小时了,那我也会触发flash,也会触发flash,注意任何时候触发flash,它都是reading级别的。就是一台节点。所有的内存都。只要任何一个条件满足,就是这什么意思呢?这个地方不是有很多麦威吗?对吧,只要有一个门里面的文件达到一个小时,这些门so都同时的干什么,Flash都同时的flash,这是第二个时间方面的,还有一个。
05:12
这个。这是h base,刚你看h reading点缩的大小啊,刚才我们看到那个40%,它写的属性名是不是还reading so呀,那个是指的是reading到达40%,那这个地方指的是reading。到达这个大小应该比较熟悉吧。八兆,八兆也就什么意思呢,这个里边啊。Reading这个里面不有很多小的吗?对吧?这些小的合在一块到达128兆之后,它也会触发flash。也会说话,不拉屎。啊,是这个意思,三个点除发plus分别是指的是什么?第一个reading so级别要达到,整个内存达到多少?
06:03
40%对吧,哎,对内存的一个40%,还有一个就是当你任意那做里边的数据到达多长时间,存了一个小时了,我也会出发plussh吧,还有一个就是你这个region里面啊,所有的内存加在一块超过。128兆的时候,它也会触发flash对吧?哎,是这个啊,这样是整个的一个flash会由它框架来决定的,那你想想看,你客户端来写的时候。需要管这些事吗?那你要客户端等你这些flash下去之后才反馈一个写成功的一个请求,那也太慢了吧,那我写一个数据写疯了是吧,我假如说我刚执行完flash的,等一个小时是吧,或者等128兆。那不可能吧,所以说客户端里面写请求啊,写到内存它就够了,写到慢慢缩就够了,那至于这个往下刷写的过程是你还这辈子自己的事。
07:00
自己的事,OK,那这块刚才所说的任意条件出发的时候,它出发的都是vision so级别的flash对吧。就是所有的memory都会一写,那有同学就很快能反应到,就这个memory里边啊,就会产生很多很多的一个什么。小文件是不是对吧,你想想看,因为你到了40%就有可能单个的M4有有一个M4达的很大了。或者说那个128兆的那种,对吧,就是你打假如说我有多个M兆,我有一个达到127兆了,我其他的假如说还有十个,我总共加起来数据才一兆,有这种可能吗?它也会触发flash对吧,那这个时候就会产生很多很多的小文件是不是。那HD是不是不不适合存小文件啊。啊,他在定期啊,会有一个这样的一个小文件合并。合并,那合并的过程我们来看一下,它有什么属性呢?叫comp。
08:00
看。找一下这个值。默认有一个这个。这是默认的七天,到了七天时间上它会合并一次,它会合并一次,那这个东西呢,相对比较慢啊,相对比较慢,OK,然后还有继续往下看,这是合并啊的。照。然后。这个。看什么?你看一下,如果说超过这个数据就是什么。说吧,说说超过这个三个人就是四个及四个以上,对吧,他就办干什么事。Then a compasion就是它一个什么?合并的一个进程将会被开始吗?将会开始,他是读过来所有的,然后所有的什么。所有的一个sofa形成一个,哎,这个就是它的一个合并过程,就是说当它超过三个的时候,它就会将这些小文件进行合并,进行一个合并。
09:10
啊,这是它的一个合并,因为你刷写的过程当中是很可能产生很多很多的什么小文件的,那还是DFS,他也知道说h base,你说想想设计h base框架的人,他能不知道HDS不适合存小文件吗?他也知道对吧,所以说他在刷写之后呢。他会将这些数据做一个合并。啊做一个合并,那这个是三个,这种是数量上的吧,之前我们看到了一个是不是它七天也会执行一次合并啊对吧?哎等等,它也是同同样的从数量上跟时间上来控制的啊,跟时间上来控制的,控制它的一个合并。是刷写之后啊,会有它的一个合并过程啊,整个的合并过程,那真正的这个数据啊,写进来之后,一写到磁盘,然后他一写到磁盘之后呢,就认为这个数据真的写入了,那至于后面的合并扩张,他不可能说像一写磁盘一样合并一次吧。
10:05
对吧,它会,哎数据不断的flash呢,它会不断的合并,不断的合并,那第一个它是把多个文件上合并成一个,对吧,那在合并的时候,他还干了一个什么事呢?之前我们不是讲他数据是假如说你删一个数据,不是打标记嘛,对吧,打标记哎,它真正删除数据的时候是在这个合并的时候。他在合并的时候,他是将多个文件和一块,然后检测到那种删除标记的时候,他真的就把那个删打了,删除标记的数据啊,就从磁盘给扔了。吃饭。啊,因为你真正的删除的数据啊,虽然在HP当中打的是标记的,但是对于客户端来说,它就应该是从磁盘进行删除的,对不对。这能理解,就是你删除一个数据,那你再也获取不到了吧,除非你重新添加对吧,对于客户端来说。就是说对于客户端来说,只要你执行了删除操作,他一定就是客户端一定认为就是从磁盘已经干掉了。
11:05
但是他在HB当中呢,它为了快对吧。那你想想看,他要是真的去磁盘做那个删除操作的话,是不是又产生了什么,对于。HDFS的一个随机读写速度太慢,所以他是用这种标记的方式,那总要把这个数据删掉吧,因为这个东西对于客户来说,因为客户已经认为这个东西从磁盘删掉了,那什么时候栓的呢?就是合并的过程。它在合并的过程当中,它将那个什么多多加载到本地,加载到VSO上。V0SOLO,然后进行一比对,然后把不用的啊就给删掉了,真的从磁盘删掉了,也节省了一下它什么。空间啊,节省了大家存储空间啊,整个的过程是这样的,而且你要注意的一个点,就是刚才我们所讲的什么切分也好,还有这个。合并也好,这个东西触发一定都是master来触发的,Master来触发的,也就是说如果master挂了,它不会切分了,同时你刷起了数据之后也不会合并,也不会合并它就是一个一个的小文件存在HD。
12:09
是这样的一个过程,然后真正的操作这个切分以及合并的是reading sofa,这sofa就是说master会发送,哎,你这个数据太大了,你要做先翻到真正干活的还是so,或者说这个地方是master对吧?哎,或者说你那个数据啊,超过了三个了,还是file我检测到了,因为他有掌握了所有的有原数据信息啊,哎,检测超过三个,或者说七天时间到了,对吧,他就会通知reading so你去干什么?哎,把这个东西合并,合并啊,加载到本地来合并,加载到RS这来合并一下啊,整个的过程是这样的。真正的合并完成之后,整个的写流程才会真正的结束,对于H来说,也结束了啊,也结束了,OK。
我来说两句