00:00
好,接下来呢,我们简单回顾一下昨天讲的内容啊,昨天讲的内容呢,是开发还是面试过程当中都是非常重要的啊,给大家呢提炼一下这个重点啊。首先第三章,那这三张绝对是开发的重点。呃,今天早上大家也都敲了啊,目前为止有没有。一个案例没敲成功的,也是环境没搞定的,有没有看到?确定没有是吧?啊,那那我就放心了,这块的案例,你只要能把这个上传下载啊,这两个如果你能做来做成功是我相信下面来过四个你也是OK的啊,只不过是那个挂了相应的这个API啊。但是这个环境呃。在我第一天的时候,我感觉大家这个做的不太好啊。呃,是文确实学的有点差,这回好多了,那这块完定之后,下边是这个3.3本期DF的L操作,那这块呢,对于这个学习比较好的同学,那我要求你这块是必须要会的。啊,如果这个学习稍微差一些同学可以。
01:04
选择性的是吧,啊,放弃一下也无所谓,因为这块呢,是真的去深入去制定一些框架啊,对于你们的需求呢,要求可能高一些啊呃,如果你后面连最基本的东西都没搞定,就是上面API都没搞定,那你这个。时间上可能来不及。可以稍微的缓一缓啊,这个重要的题稍弱一些,但是呢,对于这个你想拿高薪的同学,那这是必须要会的啊。说的。再往下呢,是第四章,这四章呢,是绝对的面试重点。只要问HDFS都逃不过这个。第四章、第五章、第六章。肯定问。我都可以把真题这个截图给你拿回来啊,这么样,包括你们下周四这个考试,这都是必考的题。而且要求手写啊,我提前强调一下,后面周四考试所有涉及到画图的地方。
02:02
啊,不允许用文字描述,全部是图的形式表现出来,只要你用文字描述,零分啊,不管你写多少文字,写哪怕哪篇没用。啊,但是草场的画几张图能把这个含义画出来。但是呢,我要求你这个图啊。稍微正规一点是吧,你别你自己画完了自己都不认识。那面试官一定觉得。是吧?啊,你这人不细心啊,做事呢,让领导肯定放心。这个要注意啊,行,那我们简单回顾一下这个写数据流程啊,因为这个呢,实在是太重要了啊。打开。首先呢,这是一个集群啊,三个date note,一个内note。四个节点。OK,左侧呢是客户端啊。单他呢,想上传200兆的送送点A。那么他想上传的话,肯定有这个集群的操作对象。
03:03
F。拿到这个FS对象之后,他首先向这个内请求上传这个输出点vid文件啊。而且并且上传到优质安硅谷路径下。那么上传这个路径下之后,这个内到它就会校验这个路径是否有这个文件,如果发现这个径上有生控的边,它就会抛一个file already。只有异常各种方法去检查,如果检查没有问题之后,哎,他告诉他你可以上传。那么可以上传是可以上传了,那你是不是你这个文件到底往这个哪一个节点上上传的。那这时候他就会请求上传第一个框。啊,把第一个块问这个内的,我要上传在哪。你是上传到哪个note上。那这时候,哎,这个内核呢,就会告诉他说,你可以往这个D1 D2 D3这三个节点上去上传数据。
04:09
因为这三个呢,无论从这个节点的距离,还是从负载的情况上考虑,都是最合理的一个选择,那么返回这三个节点之后。那就开始IO流的操作。还有这操作,把这200兆的数据分别往这上面拷好。那考之前既然是L0,那要先把这个硫的通道建立起来,请求建立。这三个节点呢,认为没有任何问题就会。把这通道啊应答啊成功。成功之后呢,开始一个一个的这个传数据。叫。呢是64。他呢往这里面写,首先呢,先找到第一个啊DE1D1呢这块呢,先写到了是内存里面去。
05:02
其实是一个内存队列。那写到这里面呢,一方面呢,他把这个数据呢,序列化到磁盘上,另一方面呢,他把这个内存的数据呢,再传输给下一个节点。啊,下一节点同样也是写到内存里面去。然后往下去写。写到吃饭,然后再写到下一个节点。那这个还是内存,然后写到。那么这个数据如果写完之后,他会给他一个响应,说这个数据我已经读走了,那读走了之后这个数据就可以。干掉了啊。显然说,哎,这个数就有多种了。毒手就把内存中的数据清空。这没问题吧?过程啊好,那整个数据传输完成之后,它会告诉这个内幕的,我这个数据已经传输完成。最后呢,别忘了把这个资源。这就是整个的一个数据的协流程。
06:01
这是写数据流程,必须要会,再往下呢,像这个节点的距离,这呢,我只要记住这句话就很轻松了啊,节点距离是两个节点到达最近的。主线的距离和。我相信,呃,拿到这张图或者这张图。都应该能会算是吧,这是多少?S3对吧,S3就OK了。OK,那下面呢,是这个机架反之啊,机架反。下感知呢,这也是官方的一个数码啊,2.7.2。看看一下这样图啊。那首先呢,它会就近选择一个节点,随机的离他距离最近的。选择一个之后第二个副本。关键啊。主要就在第二副本,第二副本呢,是在相同机价任意。只要是跟他得是在一个机架上的。
07:00
主要是减少网络的IO操作。那另一个也就最后一个副本呢,在其他几家啊,随机节点。那其他质疑是他还是他哎。OK,那这是这一块。那再往下呢,是这个GTS读数据流程,那读数流程呢,这也是非常之重点。首先依然这是一个集群,集群内部动的,内动的啊都有。然后在这里面呢,存的是这个原数据。原数据呢,这里面有一个送送点avi,而且呢,这个赠送点avi呢,分了两块。每个数据能分成两块。存储在不同的这个节点上。OK,那接下来这边有一个客户端,他想去读这个点ay这个数据。
08:02
那怎么办呢?你要想操作这个集群,那你就必须有一个客户端的。对象。拿到这个对象之后,就可以对它进行操作了,那首先第一件事情是请求下载user and省点向内进行申请,要下载它。那么就返回目标文件的原数据,那就告诉你可以下载啊,那我这个数据在什么什么位置啊,告诉他。告诉他之后,那就简单了,我等知道你在哪个这个数据节点上,那剩下的事我就留的方式啊。把你过来。比如说从这。潴留过去,哎。在这边呢,进行一个数据的一个对接。好,那首先读第一块啊一。那就把这个数据返回去。读完之后,哎,再读。
09:01
读完之后,最终在这个客户端这边对数据进行一个拼接。拼接成最终的200套。这就是整个数据的一个。读的流程,最后呢,没办法关闭资源,可能我们要这个流。是这么一个过程啊。OK,这是读数据,那再往下呢,是这个name not和second no secondary name not工作机制。呃,这个呢,也是非常重点。非常重点,这个是面试和开发啊,都需要掌握,那这个机制呢,属于面试的重点啊。下面有一个故障处理是开发的。那我们来看一下这个工作机制。好,首先呢,这是一个集群的内部的啊,左侧呢,是要操作这个集群的客户端啊。那接下来LA到的一启动。啊,一启动它做了几件什么事情呢?哎,它加载这个编辑日志和镜像文件到这个内存中。
10:06
软件,那这个内存呢,通常呢,都是这个128G或者是256。然后呢,每一个block都会占用150个字节。好,那把这个呢,都加载到内存中之后,那内存中就有最新的。啊,那下面呢,这个客户端对这个集群进行一些增删改的操作啊或者请求。让大家正常改,那么他首先干什么事,干一件什么事情呢?首先将这个操作先记录到这个编辑日志里面去。记录完之后他再更新。内存操作。先记录,再更新内存。执行相应的超入,那也就是说最终它这里面内容加上它跟内存中的内容是一。
11:05
意思啊,OK,那这其实就是内的一个机制。那么随着这个编辑日志的增加。那么你要不把它它俩进行一个整合的话,那么这个速度会越来越慢,越来越慢怎么办呢?吞散亮登场。它主要的工作呢,就是帮助这个内将这两个文件进行一个整合。那也叫这个检查点啊。请求是否需要检查?小帅。那这个踹快呢,它有一个条件。一个呢是定时时间到啊,默认的是一小时。3600秒,另一个呢是这个编辑是数据满了100换扫。两个条件满足其一都会执行啊,检查操作其实也就合并的操作。
12:00
那假如说他满足这个条件啊,执行这个检查,那执行这个检查呢,他就会将这个。打一个标签啊,打一个T滚动成I001。然后同时生成一个空的。这个空呢,就是等待这个客户端可以随时对他操作的。啊,操作日志都先记录到这里。那这个日志就拿过来和他拿过来进行一个合并。OK,拷贝,将它拷贝过来,将它拷贝过来。拷贝完之后,把这个镜像文件和编辑日志加载到内存当中。进行一个合并。合并呢,就生成了一个叫f check这么一个文件。看完之后把它拷贝回来,并更新名字,重新命名为I。
13:02
那至此这个内当中IPA加上这个正在滚动的,那就跟内存中的。所有的原数据。这么一个过程。那在这里面稍微有个小细节能感觉到什么感觉到呢?它占了128G内存那。他占多少?是不几乎就是1:1啊,哎,因为它这里面是不是同样存在也是原数据啊,但是不FS和它吗,是不是也加载进来啊啊,几乎是1:1,那也是说为什么这个name note和second name note没有放在。一台机上的原因就在这儿啊。那如果说你都放在一台服务器上,本来是128G。那也就各能占60世纪。直接影响你这个服务器的性能。所以说他俩尽量的去分开啊,OK,这是内控的工作机制。那再往下呢,像这个查看这个编镜像文件和编辑日志啊,这个呢,属于这个两解范畴。
14:07
你知道里面具体存的是什么内容啊,方便你去记忆理解的啊,注意。之后呢,这个是检查点的一个时间设置,至少你要知道它在哪个文件里面配置哪个参数,就能把它搞定。就OK了。嗯,不难,呃,下面这个5.4内到的故障怎么处理?这个呢,属于这个开发的一个重点啊。再准确一点,应该是。运维哈运维,比如说这个基金那漏了宕机了。怎么办?那这里面呢,我们有两种方式啊,一种方式呢,是将三内中的数据拷贝到内漏中啊,直接拷贝。那另一种方式呢,是。采用这个import check point这种啊。导入检查点的方式恢复这个原数据。两种方式都行啊,只要大家练一遍就OK,在你以后的这个企业开发中,如果真的遇到这种情况,那按照这种方式去恢复。
15:08
OK啊,至少能保证,呃,集群中的大部分数据也是OK的。只会丢一点点吧,丢哪里?Progress里面的是吧。呃,下面呢,还有一个是集群的安全模式啊,集群的安全模式,安全模式这块呢,我往往最主要的是用它的。胃疼什么情况胃疼呢?啊,也就是说你在离在进入到安全模式之后。那我想做什么呢?只要一离开这个安全模式,我就要执行一些命令。啊,比如说这个,呃,退出安全模式之后,往往是银行结账。他这个结算结算完了。我要立刻启动类似于服务啊,啊等等一些系统操作啊,一些命令,那这时候呢,就往往可以用这个。
16:06
等待。相当于是一个主摄的。像其他的这个像呃,安全模式还要稍微了解一点的,就是什么呢,在这个内动的和电动的是不是启动的时候。它默认是进入到安全模式。那他如何能退出呢?这里有一个满足最小。本条件啊。一般呢,就是这个值会设置的,唯一就是只要有一个副本。OK,那么同时呢,这里面有99%的块都已经满足了,这个有一个副本,那你就可以启动。那如果你想设置的级别高一点,那比如说你这个副本呢,必须是三。啊,必须是三个副本全部能正常工作啊,都达到99%,那你才能启动的话,那你这个可靠性会高一些,但是你的使用性。
17:03
就会差一些。不是你非得都都OK。那这个你得是只要一台服务器坏了,那就先要把这个检修OK之后才能正常的启动这个集群啊。看你的需求了。那再往下呢,是这个内的这个多柱。那这里面需要注意什么呢?它这个耐的多目录啊。那每个目录里面存放的内容是否相同?是不是相同的,相当于是一个备份。增加了它的一个可靠性。这是这个内部。OK,今天呢,我们就讲这个内容啊。接下来呢,我们要讲的是这个带动的以及。BFS的2.s的一个新特性啊。
我来说两句