00:00
好,接下来呢,给大家讲一下集群的一个安全模式和吃饭的一个修复,那这样功能呢,非常重要哈,在生产环境下呢,我们呃,有的时候在运行的过程当中就会进入到这种安全模式,那我们怎么来处理,那首先呢,给大家看一个现象啊,呃,其实刚才我们讲上个案例的时候也遇到过,就是我们集群啊。呃,在启动的过程当中,它会进入到安全模式。尤其是这个系统刚启动的时候。啊,我们再来给大家演示一下这现象啊。重新启动一下集群。Start。然后我们来到这个页面啊,刷新。稍等一下。呃,好,那现在这个ADS啊,已经启动起来了,启动起来之后呢,我们仍然是在这里面操作,我点删除。它会提示你说这块啊,看到什么含义啊,说呃,Count'delete,这个常老师name notde呢,一直触着安全模式the report这个块,Has reached,说达到这些标准啊,然后才能正常运行,然后the mini number of lab code not require,也就说你这个最小的这个date notde啊,这个啊数没有达到也是不允许的,说在save这个safe mode exception。
01:20
Turnoff关闭,自动在25秒,20秒以后把这个啊集群退出安全模式。好。那这里面其实隐含出三个这个参数啊,第一个参数呢,叫你这个块啊,得达到99%,然后真你允许你运行啊,就是退出安全模式,还有一个呢,说你最小的这个date no的数没有达到,其实最小这个数多少呢?是一是零个啊,就是你得大于一个date no的。你集群上制裁得有一个带诺的块,你才允许工作,OK吧,那还有一个呢,就是离开的,就是哎,30秒之后自动的它会嗯离开,比如说它有一个30秒的一个期限啊,除了这之外呢,我看这个前面这块啊。
02:05
嗯,这已经30秒到了啊,这个速度挺快。行,那30秒一到的话呢,你这里面删除。对吧,哎,就能够正常的一个删除了啊,那在这里面给大家解释一下啊,什么含义。先看一下这个。说呀,安全模式文件系统呢,只接受读文件啊,读取数据,而不接受删除修改,刚才我们说这个集群已经进入到安全模式,是我们删除数据是不允许的,哎,但是我们是不是能看到集群上有对应的文件列表啊,这是没问题的,哎,可以看,但是呢,不允许删。那再来说进入安全模式,什么场景下会进入安全模式呢?通常是这么两种情况。哪两种情况呢?第一个name note在加载镜像文件和编辑日志期间,它处于安全模式,那什么时候加载镜像文件和编辑日志还记得不?是不是就是你集群启动的时候啊,他要将这个镜像文件和编辑日志。加载到内的内存当中。
03:01
那也可想而知啊,你这个加载的过程当中,你继时来访问,那我这内部都还没出始化完呢,我能能接客吗?不能接客对吧?哎,这个得时间到了,这个服务员们都准备好了,那才能正常的一个结课啊。OK,那再来说这个name note呀,在接收data node注册时处于安全模式。也就是说这个name note和data note1工作启动的时候,是不是data note先向他进行注册,说我这里有多少块多少数据啊。对吧,哎,得告诉我有,那这个期间呢,也是一样的,你因为你要对我的内进行操作,我连我下面有几个小D,有几个data note是否活着我都不知道,那你给我访问也没有意义,所以说这个期间呢,属于一个保护期,不允许外界对我的一个写操作,只允许看。那下边呢,就是退出安全模式的条件,刚才那里面我说了三个条件,哪三个条件呢,第一个参数是它。说你这个集群上最小可用的这个data no no的数你得大于零。
04:01
对吧,大于零的含义就是你至少集群上得有一台电note,嗯,那你看一下这个值。来到HDFS。OK,就他。看到吗?这个参数的含义呢,就是你至少集群上得有一个date note。啊OK,那当然说了,你说的得有两个之后才能工作,那你就把它改一下啊,改成这个一对吧,大于一嘛,嗯。然后呢,再往下说,还有一个,他说这个安全模式,你这个副本数达到最小要求的块占总块的百分比,默认的是0.999。啊,它的含义呢,说你得,呃,你这块大块的这个最小数啊,那得达到99%啊,99%的块都已经启动了,你才允许启动啊,其实这里面呢,它只是允许你丢一个数据框,不管你有多少个,假如说你有这个100个,它最多只允许你丢一个框。能懂吗?就是一个块没有启动,这是可以的啊,一会我们给大家演示一下这个哈,好,那再来还有一个参数正常。
05:05
哎,这个稳定时间呢,默认是这是到这个毫秒啊,其实就是30秒啊,这值给你看一下啊。比如说它稳定时间,比如说集群在启动过后,得过了30秒之后才会正常的退出这个安全模式啊。打一下。是这个是吧。对吧,这个值里面呢,它呢这是毫秒啊,你先干掉三零啊毫秒,然后之后呢,这30变成秒啊。对不上。这个是毫秒值哈。行,那这是这么几个,那他呢,他也给你看一下吧。一起看了。是吧,这是0.999F啊,其实呢,它只接受你允许一个数据块坏掉,好,那下面呢,这是基本的一个命令哈,说集群哎,你可以查看你当前集群是一个什么状态啊,你可以get,那如果想进入到安全模式呢,就是enter啊进入那离开呢,Sle啊wait呢,还有一个是等待啊,等待安全模式呢,我后面有个专门案例,专门给大家演示啊进入那这个获取进入和离开,这个比较容易理解吧。
06:10
行,那下面我们给大家看一下这个具体一个案例哈,啊,其实是一个磁盘修复的一个案例,我们模拟一下在基金上啊,它的数据块坏掉。哎,而且是两个数据块完全坏掉,什么意思呢?我们来到这里哈。嗯,退出来。CD还知道我们数据存储在哪里吗?稍微回忆一下,还记得吗?是不是在这里面。哎,我都进入到这个路径。还有多方对。Cfs,好。哎,都来到这个路径哈。进来。
07:00
OK吧,哎,我彻底的把一个数据删掉啊,删谁呢?比如说我删这个,我再删一个他,哎把这俩俩数据框啊,三个副本全删掉,看看他会出现什么情况啊RM-RF。嗯,我这样吧。我执行一个这个命令,哎,发送到所有会话,那就是102103104,同时执行我这个命令啊2F-2F啊block啊二五,然后block。825。下划线,哎,Meter,然后再来一个呢,嗯,Block把。46OK吧,四六,然后block。四六。下划线,哎,我将这个两个数据块全坏掉,因为说了哈,它是呢,百分之九十九九九点,呃,0.999的含义呢,是你坏超过两个块。那我这里面就会进入到安全模式。哎,他机群启动不起来哈,好,那我们试一下啊执行。执行完毕之后,你查看一下说没有了,哎,这个二五的和四个六都没有了。
08:04
对吧,这也没有了。这也没有,那我这删除之后,那集群是什么反应呢?你发现集群没什么反应。没什么变化。为什么呢?大家思考一下,为什么我这个数据块都坏掉了,这个集群还不知道呢。思考一下这个逻辑。看下这张图。嗯,这是name notde,这是data node date notde OK吧,还记得name notde和date note工作机制吗?在启动之后,Date notde主动向他进行汇报,对吧?哎,汇报,而且是汇报到达到这个六个小时的时候,我是不是再汇报一次?也就说不是我一直在汇报,我是过六小时之后data note才会向内note更新一次,或者呢,就是集群刚启动的时候,我会向他汇报一次,就是进行一个注注册。是这样吗?那现在我们是把数据块给他损坏了,那内部弄的他知道吗。当前这一时刻,他还不知道,至少得过六个小时。
09:03
对吧,那我要想让他知道怎么办?哎,我是不是重启一下集群,他不就能快速知道了吗?好,那下面呢,我就给启动一下集群。嗯,那我这个就关了啊。这个工具。关掉,重新启动一下集群。这个呢,就是破坏实验。生产环境下呢,你会遇到说某一个数据块啊,啊彻底损坏了。那我们怎么办?那这时候就这个办法就可以解决啊,教大家怎么解决,呃,Start启动。那期间我们再来刷。你看一下这块。我截一下啊,我给你截一下。看一下这条什么含义。对吧,集群已经启动了啊,启动了,启动之后呢,你来看一下这段含义。
10:02
说呀,Same mode is on啊,The report这个块呢,0NEED是不是零九这个还没刷新完,再刷新一下。这是零块,现在八个块了吧,对吧,哎,现在八块了,我来一个八块了。蚂呢说the report的这个块啊,八个啊,如果你再添加一个块的话呢,就会达到这个0.999这个标准了啊,因为总共块呢是十个,你看我现在快答吗?它就出现这个啊,然后the minimum number of lift note is not require了啊,这个也不允许安全模式,Will turnoff once啊,Has been reached。哎,直到这个数达到,比如说现在达不到,达不到数他一直卡在这。那怎么办呢?想想。现在怎么办?他一直离不开这个安全模式,哎,那这时候教大家哈,如果说你在生产环境下呢,你就会有可能你的某一块磁盘坏掉了,对吧,或者连续两三块磁盘坏掉了,导致你机芯现在起不来,一直处于安全模式,那怎么办?你可以采用命令。
11:02
啊,这里面命令的就是这个as。BFS。But me?Moded,哎,你先查看一下这个是否在安全模式,对吧,虽然说页面上能看,那这个命令行呢也能看,说s mod is啊,嗯,那下面呢,你要执行一个离开安全模式。啊,现在我已经离开安全模式之后,你再回到这个页面刷新。现在呢,说安全模式off已经关闭了,但是你看上面这块。它会提示你说there are two missing blocks,比如说丢失了两块啊,丢失哪两块呢,这两块。对吧。那怎么办?那其实现在你可以对集群进行一个相关操作了啊,没有什么影响啊,现在可以工作了啊,把这个截下来。比如说你来到这里面。行吧,那我把它删掉。
12:01
对吧,集群仍然能工作,但是你下次再起集群的时候,他仍然还会进入到安全模式,然后还给你报这个信息。那我怎么一劳永逸解决这问题呢?那两种办法,一种办法你彻底的把这两块数据给修复过来。那怎么办呢?有专业的那种这个修复这个磁盘块了。啊,那这个得花钱啊,花很多钱啊,当然了,这个数据很重要,呃,如果说确实呃需要恢复的话,那该恢复也得恢复啊,但是记住哈,你在恢复机前,恢复之前,这时候不允许再对集群有任何操作。啊,因为是你保持心态断电,断电之后找到那个厂家啊,让他们帮你把这磁盘修复,然后给他你钱就行了,那还有一种办法呢,说这块数据啊不太重要了,我也不想让他每次都进入安全模式,那怎么办?我把这里的原数据给他删掉。那怎么找呢?哎,很好找,比如说你看看这里面说苍老师对吧,把它删掉。这删掉,我删掉之后,你再回到这个这里面,你看还剩几个了,就剩另一块了,就剩一个了,哎,好,那再回来。
13:01
你再回来之后,然后我这里面是temp。Time下面落个死。Log斯艾德硅谷再往下log菲斯啊,然后呢,是001的。1619123。嗯,对一下啊。Log file,然后APPLICATION16119123,是不是第一个,哎进去进去之后呢,是不是这个104啊啊他啊把它删掉。OK吧,删掉之后你再回来,你看现在这个集群就已经彻底解决这个问题了。好吧,要你把数据真正的恢复,另一方面呢,你你可以把原数据删掉也都可以,那这时候你再重启一下集群,它就不会有任何问题哈。好,然后start。
14:02
启动集群啊,再次启动之后,他就不会再报说进入安全模式了啊。30秒一过,他就立即会恢复啊,当前它是这个啊房啊别着急。需要30秒。29秒对吧,嗯,29秒,嗯,然后26秒,还有26秒。这么几个值哈,等一下。那下面呢,往下看啊,往下看这是磁盘修复啊,这个功能很重要啊,这这个大家一定要重视起来啊,往下走下一个案例说一下这个集群模拟等待安全模式,什么意思呢?哎,我先让集群进入到安全模式。进入安全模式。然后我开启一个wait,还记得这个命令吗?上面。出来。这里面有一个这个wait命令它。啊,它有什么用呢?呃,大家在这个以前啊,这个银行里面有个对账,不知道大家知不知道哈,什么叫对账呢?他每天呢是12点过后。
15:07
凌晨12点,12点过后,然后过五分,然后开始对账,那这个期间不允许你外界对我进行一个访问。对吧,不允许这个啊,往里存钱也不允不允许钱啊,类似的这种状态啊,那这种状态的话,我想希望什么呢?银行对账一结束,比如说五分开始对账,到十分钟的时候对完,对完之后就可以立即执行你后续的相关操作。哎,可以自动化支撑啊,自动化这个执行也行,想干什么都行了。啊,其实这个啊,不大家那个移动啊,手机移动对吧,它也是啊,每个月这个月初啊,或者是月底左右啊,月初和月底这个这个期间是不允许对这个啊改套餐啊或者查看呢啊等等这些这些情况对吧。那这时候怎么办呢?来给大家演示一下啊,首先呢,我们先进入到一个。什么模式呢?哎,进群进入到这个安全模式啊。这是盖的获取,那进入的话呢,是这个。
16:03
谁有mod enter进入。先让集群进入安全模式。OK吧,Save mode is off啊,It on,它开启之后,下面我们执行这个脚本,那你看一下这个脚本里干嘛了哈,这脚本里面说as DFS,嗯,Dfsin s mode wait,我进入到等待。那那这相当于是一个主摄状态,它如果新债集群已经处于这个安全模式,那这个等待它就会主摄在这儿,不会往下走了。如果这个安全模式一退出,立即退出之后它就会往下走。执行下面命令,相当于这个及时响应啊,啊要高一些对吧,你安全模式一离开,我立即执行后续的操作,那它执行一个什么操作呢?你看adys d FS-put是不是上传了一个文件呢。哎,执行了一个相机群上传一个文件,就这么一个操作。啊,然后呢,我们来试一下OK吧。嗯,那这里面。
17:03
把这脚本啊放到这里面。把里的内容拿过来哈。这脚本应该能看懂吧,不是特别难。OK。甚至帽子。机器。搞定搞定之后,我当前是已经进入到安全模式了,那下面呢,我就开启或者执行这个对应的脚本,OK吧,执行脚本。那他现在呢,一直处于这个主射状态。对吧,哎,主持状态,那我要执行一个什么操作,它会往下执行呢,这里面看我在离开这个安全模式之后,你看一下这个窗口的变化啊,我在这里面执行。离开,离开之后你来观察。看到没say is off吧,然后你再看集群上,它这里面说上传一个read me到这个路径吧。
18:02
看到吗?瑞亚I刚上传的就给他。啊,这就OK了。这呢就是这个呃,叫等待啊,等待这种模式啊,啊这个呢,其实看你是什么场景了,说你这个啊,如果你想设置啊,离开安全模式之后,我立即要执行什么什么事,那这种场景呢,我们可以用这个命令啊,这也不是特别多哈,最多的最重要的是这个哈,就是磁盘的一个修复。在安全模式下我怎么处理?对吧,我的数据块丢失了很多,那么进群怎么处理?
我来说两句