00:00
好,今天呢,我们讲这个之前遗留下来的一张高可用啊,前面都没讲高可用呢,主要就是今天我们就是刚才已经跟大家提过了,高科生他开的进程相对来说比较多,因为考虑到大家都是虚拟机的一个情况,而不是真正的一个服务器,所以呢,就是今天需要保证大家都需要把这个什么高可用全部安装成功啊,后面咱们就不用了,当然你后面自己想用高可用,如果你觉得你你的虚拟机你一台能都能给4G内存,那你用高可用也没也没问题,也没问题啊,是一样的,呃,或者说就是你要用高可用的时候,就后面我们在做一些配置文件,其他学其他框架的时候,要用到好多个集群的时候,哎,我们可能配置的那个地方是那诺的那个节点,当时我们不是配了一个什么哈,102号嘛,还有印样吧,只不过那你就要你自己去想办法解决什么,诶高可用是怎么配。
01:00
你要想到今天的这个知识点去按这样配啊,你需要自己有一定的自学能力,有一定的自学能力好接着往下讲,然后我们的高可用,其实在哈多1.0的时候,它是没有高可用的,它是不支持高可用的。它存在一个问题,你看在2.0之前啊,它有一个单点故障point of。单点故障什么单点故障我们学习了哈多之后,就目前来讲,我们现在讲的是HDFS这一个,因为哈机群有HDFS,雅安还有什么。等等对吧?啊,我们这个高可用,现在所讲的高可用,针对于HDFS来讲呢,我们讲HDFS要能正常工作的时候,你需要开什么进程。那not要有吧,要有吧,而且not干什么用的,存储原数据的对吧?这个原数据指的是什么?那我们先聊data data not干什么用的,存储实际数据对吧?啊,就实际数据它是负责存储的,那内not它的一个原数据,它存的是不是记录这个数据,实际数据的位置啊,大小啊,权限啊等等这些信息啊,大家看过那个f s SE image是吧?哎,它里面就记录的等等是这些内容。
02:35
好,这个单点故障指的是什么意思呢?当然你那not挂掉以后,那你还DFS其还能用吗?你实际数据其实没有丢,对吧,在not上。实际数据是没有丢的,但是你客户端怎么访问,能拿到这个数据吗?拿不到吧,因为内note里边它记录的数据的位置,拼接方式,因为你有可能一个文件特别大,它分成了很多块,分散在不同的电上。
03:06
每个在登录的,它只是存储自己的快。那你要想拿到一个完整的数据,你必须要有它的一个什么拼接方式吧,拼接方式。啊,那这个时候内,它就存在着一个单点故障问题,那你要解决,最开始解决的时候,当然它2.0的时候,他已经有高可用了,那个1.0的时候也有很多公司在用啊。也有很多公司在用的,那不能因为他有这个问题,我就不用这个框架,对吧,那他需要自己去做这个适配啊,增加这个功能,最可最早的是Facebook做的。他用了什么呢?提出了一个概念啊,班长。看过电影啊,阿凡达你对你翻译过来阿凡达也行,他其实英文翻译过来是什么意思啊。
04:01
化身对吧?啊是化身的意思。是什么意思啊,其实它就相当于。弄了一个内蒙的一个华山。最早提出来的。后来哈图他就借鉴了什么Facebook的这个。非得不港。最终提出了它在2.0之后,它自己的一个高可用,其实原理上都是类似的。原理上都是类似的。好,那它存在单点故障啊,我们需要聊另外一个知识点。聊什么呢?就是name not跟second他们的一个工作机制,在这个地方我知道大家已经学过了,在这个地方还需要重提一下。能不弄懂,如果让你来设计一个这么大的一个哈宝,就是HDFS框架的话,让你说把原数据存在一个地方,然后实际数据存在另外一个地方。那你想,而且原数据是要跟客户端以及跟其他节点进行通信的,对吧,其他建议那肯定不能访问,效率不能低了,那你首先想到的是把数据放在哪啊。
05:12
放到内存当中对吧,也就是来一条数据之后,你先开始想着放到一个list或者其他的一个内存里边。但这时候产生了问题啊。假如说你把那个数据开始放到一个list,假如就是吧,是一个接口是吧,List里面这时候产生了两个问题,第一个问题,数据量大的时候和list它的一个访问。效率很低,效率很低,访问的效率很低,这是一个问题,那你要深入的去探讨它具体的其他数据结构的问题了啊,在这块我们不讨论第二个问题,非常严重的问题,这个效率低它还能用吗?还是能用的。第二个问题是什么?断电之后,数据全部丢失了。
06:05
数据全部丢失了。就其实它不是机器挂掉了之类的,它就是断电了,正常的关机之后啊,数据丢失了,那这个时候很不应该了。对吧,你存在内存里边很不靠谱。那怎么办?后来怎么做的?放在磁盘里面存一份嘛,放在磁盘里存一份,那这个时候他提出了。但是你想想看啊,放在磁盘里存一份的时候,有两种方式实现方式吧。第一种是什么?就是说他在内存当中更新以后。他自己往磁盘写的,就磁盘跟内存当中数据完全保持一致,这是一种方式啊。这种方式有什么问题啊?
07:00
效率太低了吧,那么那本身他的一个工作就很繁忙的,对不对啊,工作压力很大,负载很高的,那这个时候你不仅要他在内存进行更新,你还要让他自己往盘里写,太麻烦了。啊,效率很低,效率很低。那这个时候他就换了另外一种方式吧。怎么说呢?先把操作步骤记录下来吧。对吧,操作步骤记录下,就是咱们学到那个什么爱丽丝那个文件吧,先写操作步骤,这样效率很高,第二个。然后弄一个什么,它的一个镜像文件吗?一个镜像文件是不是就等于它的一个复制啊f image是文件系统的一个镜像文件,对吧?镜像就是你拿镜子给他照一下是不是一样的呀,完全一样的对吧。好,那这个时候一个镜像文件,那也需要你合并啊。
08:02
是不是啊,很麻烦,同样的还是效率低,这时候是不是我们引入了什么三个能不弄的来帮我们做这个事啊?啊,所以我们在一开始强调的时候就说second note,它不是什么no的一个备份吧。他的工作就是为了减少内的一个启动时间。减少启动时间,为什么减少启动时间而不是他正常工作时间?对,因为正常工作过程当中啊,内的内存里面数据是实时进行更新的,它自己就会更新的,对吧,一条数据来了,他把操作日志写下去之后,就是ID子文件啊,写下去之后,他立马就会去更新它的一个内存。所以只要你不断电,你的内部note没有挂掉,它那个数据呢,肯定是最新的,肯定是最新的,但是一旦它掉电或者挂掉以后。
09:02
他在起的时候,它内存数据是丢失的,内存数据是丢失了。那他光把那个f image加载进来呢,又少数据是不是啊,少很多数据。所以他要做一个FS image跟这个I合并这个事情。革命这个事情。当你服务器跑了很长时间以后,这个I是非常大的,它加载进来的时候,合并的时间很长,所以我们才引入了second no来帮我们那弄的来做这个事情,来减少它的一个启动时间,是这样的,这是整个的一个工作机制。三个的一个工作机制。这个工作机制我们从中也能看出来它存在的问题啊,还是那个单点故障问题,那note一旦挂掉。集群都不能不能用了。那其实你可以这样做,怎么做呢?你弄一个脚本,实时的监控什么内弄的一个工作状态,你可以监控内弄的这台机器的一个CPU,二内存占用情况。
10:10
一旦哪个指标出现异常了,可以给运维发短信嘛,或者打电话都可以的啊,嵌入一个调用就可以了。那这个时候运维接到电话或者收到短信以后,他说跑到公司,然后拿着一个磁盘去。考一下吗?三的一个数据吧,你们不是讲的吗?当时两种方式,这两种无论哪种方式都是从三弄来考数据到的吧,这样。这个是那的电机器没有挂掉,那有一个情况,那那个机器被石头砸坏了怎么办呢。对吧,天灾人祸被被石头砸坏了。那你有这个艾利跟那个FS image都没地方考,你考到哪能起来啊,起不来没有那么多的。
11:04
对吧,没办法。这是我还是我们一直所讲的啊,就是到的它这个存在的一个,也就是我们还是DF集群它存在的一个问题。就我们为什么一定要用这个高可用,而且公司当中肯定是高可用的,肯定是高可用的,不可能用一个name not的,你想想看,一旦出问题了之后,那个你们集群那么多经常挂掉网是吧,学的时候那公司当中人家下载下载的东西呢,下载好好的突然挂掉了。用户体验非常差,跟跟我们话筒一样是吧,用户体验很不好的,不能这样。这是我们所讲的整个的一个,它存在的一个问题。存在的问题。
我来说两句