00:00
好,接下来我们来看一下,哎,企业开发场景案例,那这个呢,非常重要哈,嗯,这里面呢,是按照这个啊,真真实的这种生产环境啊,给了你一个需求,然后你按照这个需求,哎,结合你这个硬件环境如何来配置HDFS相关硬化参数,Mars相关硬化参数,以及呢,雅恩对应的相关优化参数。对吧?哎,那么来真实的演练一把哈,那首先看一下需求说呀,从一个G数据当中统计每个单词出现的次数,服务器三台,每台服务器呢是4G内存,四核CPU,然后呢,设线程,这不就是我们当前这个服务器的环境吗?对吧?那然后需求呢,是1G数据,那你要开启多少个ma task呢?是不是八个呀,对吧?然后呢,一个reduce task啊,一个RA master。那对应的任务分配呢?是啊,平均每台服务器三个任务,433。这个需求好熟悉呀,啊,确实我们在讲之前雅安那个案例的时候,对应的需求是不是就是它。哎,一模一样的需求哈,只不过呢,之前我们在讲解的时候,只是给大家是不是演示了一下雅安对应的参数的一个调优啊,那对应的as和Mars是不是没大家讲啊,对吧,因为那个时候我们还没有讲ADS和Mar相关参数,那这次呢,我们就哎总共都给它串起来,哎真实在生产环境下怎么配置OK吧,好。
01:19
那首先我们来看一下,就是ADS相关参数的一个调优,好,那还记得我们在呃,这里面首先来配置的是不是就是内弄的内存呢。哎,我们要在102上去启动这个,呃,N以及D。好比说这里面既有N又有DN,那总共呢,它的内存是不是四个G。那这里面我只配置name node一个g date node一个G,那让它们两个尽量充足,OK,在生产环境下,这个它俩不会放在一起的哈,尽量分开OK吧,好,那这是第一个啊,配一下呗。c.model到hi do法,Env hi do法vm hi do法啊v.CH走。
02:06
呃,来到末尾C的G直接插入了啊。好搞定,搞定之后呢,分发排毒法,因为点顺序懂。这是第一个啊,Name都有内存,那接下来我们要配置的是不是这个心跳这个并发数啊,那这个并发数还记得怎么配的吗?当时。哎,连接线成数,那这里面有个公式就是20乘以log,以E为底集群的函数,我们可以通过这个,哎,Pythons里,Python里面对应的这个啊函数帮我们去计算,那计算完毕之后,我们是不是21啊好,那这个心条并发数呢,我们三台服务器就用21个。那再回来,回来之后配一下HDFS。打开来到末尾O插入。好搞定,然后分发ss y c t s set中。
03:01
那配完它之后,那接下来我们再往下看,下面我们说是开始配置这个回收站呢,对吧?哎回收站,那回收站呢,我给它打开这里面呢,我们配置的是60分钟可以吧,哎,60分钟之后自动把回收站里的内容清空,那当然了,你说这个回出站时间太短了,我可以配成一天,那也可以啊,都没问题啊,只是防止一个误删,一个小时之内,以你的手速应该没问题。嗯,这个我们配的是在car set啊vm car set。OK,好,SSYC轴。那下面这个ad参数我就配完了,就这么简单,那同学其他参数要不要配呢?那我们来看一下要不要配哈,首先第一个呢是集群压测,集群压测呢,它是给你提供的这个测试加包,不需要你去修改形成参数,对吧?这个没问题,那接下来呢,是这个多目录配置,那内note多目录呢,其实没有必要,后面呢,我们会搭建这个呃,Name note ha来保证它的可靠性,OK,那data note要不要配多目录呢?那当前我们是一块磁盘,我就不需要配了,如果我是多块硬盘的话,那我就需要去配一下data note呀,哎,好,那这是这块,那你配置完这个多目录之后,那这个地方是不是得负载均衡一下,那现在呢,你至少是一个块,那我就不需要负载均衡,那下面呢,是这个呢,是增加服务器和退役服务器,那相关的这些内容,那我们暂时现在也不需要啊,不需要,因为这是后期啊,集群的一个运维相关操作啊,你愿意配的话,可以把这个白名单给它配置上,保证你集群的安全,因为我们是现在使用的是内网,内网的话一般我们就可以不配置白名单,如果外网的话呢,呃,防止黑客的一个攻击,往往我们会配置对应的白名单啊。
04:39
呃,下面呢,是这个ADS存储相关的,那这个纠三码和异构存储,我现在要不要配呢?其实它不是配的,它是你在命令行上进行操作,对某一个路径说你这个路径上的数据按照纠三码进行存储,诶按照这个异构存储,你这个路径呢存储,哎这个冷数据啊,另一个路径的存储热数据相关的一个分配,对吧?那这块呢,目前哎,我们,呃现在呢,还不涉及,等我们后面操作集群,真正往集群上存数据的时候,那你可以考虑去配置对应的异构存储,让它冷热数率尽量分离啊,达到这个集群的效率的啊最佳状态,OK吧,那这下面呢,是这个ADPS,呃,故障相关的,那内蒙动的故障刚大电源集群肯定不可能故障啊,对应的这个安全模式,那你就等待在正常这个啊,条件满足了它就会正常OK,那你刚搭建机群也不可能这个涉及到磁盘的一个修复啊,有坏道的话,那你就正常解决,没有的话,那我们直接就过了OK吧,啊所以说后续这些呢,不需要我们在这个配置文件里面提前进行一个配置啊,后期我们用到了啊,再相关的啊去。
05:39
上面一个修改啊。呃,集群的一个迁移,目前呢,刚才集群也不涉及到一个跨集群的一个迁移的问题,那我们先,哎正常使用,那之后呢,就是map了,对吧?哎,那么接下来就看一下map reduce相关参数的一个调优。好,那你快速回忆一下啊,这个map过程当中啊,尤其这个suffer,我在这过程当中能进行哪些优化。
06:03
好,那首先进来的就是第一个。环形缓冲器大小,环形缓冲器大小呢?默认是100兆。对吧?哎,如果生产环境下,你这个服务器配置比较高,你可以把它调高,由于我这个配置数非常低啊,哎,所以说我就没办法往上提高啊,就100兆就够了啊,包括这个一血阀值呢,0.8啊80%进行一写,那如果生产玩家你的服务器比较高,你可以调整到0.9,那这块呢,其实我的服务器呢,现在呢配置比较低,哎,暂时呢就也不用调,那下面诶合并的次数默认十个啊还是道理,你的服务器性能高,你可以往上调,那现在呢,我的服务器配置比较低,那我就仍然是十个。Map task默认内存,哎,它默认内存多少呢?是一个G,你看这块啊,如果前面这个这个还记得是谁吗?哎,是map task对应内存和这个对内存设置的一个比例,哎,如果这两个值没有设置的话,那什么它默认的就是102式,默认情况下这两个值是没有设置的。那它怎么值,内存就是1024,那同时还要记住,那你这个对内存它默认是多少呢?默认跟你这个map t的内存大小一致。
07:08
那也是这块你保持负一,然后这块你不需要修改,那默认呢,大家都是1G内存。那能不能说是我让他1G内存,它2G内存能不能能。哎,可以分别设置。OK吧,哎,只不过呢,还是这个道理,我们服务器配置现在啊,不是特别高啊,用1G就够了啊。再来ma和CPU默认的是一个啊好重试多少次呢?哎,重试这个尝试失败了,重试四次啊,四次我觉得够了啊,正常三次我觉得都可以。再往下说,每个reduce去map中拉取数据的并行数,你这是map阶段,哎,我从这个是reduce,哎拉一次模拉紧呢五个,因为我这一共才八个麦太子对吧?啊,那你要这想想改成八也行啊,其实我这。哎,拉两次也可以啊,没有任何问题哈,啊,就五就行了,那下面说八方占reduce可用内存的一个比例阀值,比如说你内存占多少呢?哎,占这个0.7,那这个我也用它默认值,我就没有来调高,本身配置就比较低,对吧,那下面呢,说这个80分钟,哎,数据达到多少比例写入磁盘呢?那默认值呢,是0.66,那我就用它默认值呗,嗯,再是0.66够了啊。
08:14
下面这个呢是reduce task对应的内存,和reduce对应内存。哎,跟ma内存一样的啊,默认的它仍然是1024啊,那你也可以单独让它们两个值配置成不一样的。那你需要单独配置,那这里面我就保持一致了哈,默认的,那再来reduce task的CPU核数默认是一个,那这里面我给调成两个,为啥调成两个呢?因为你是八个ma task,一个reduce task,你会将八个ma task数据汇总到reduce task。对吧,那这个数据量呢,会比较大,所以说这里面哎,我就哎多给他开了一个CPUOK吧,啊配成两个下面radio test和失败同时次数默认四次,那就仍然用四次就行了。下面说当map test,嗯,这个达到多少比例的时候开启的test,也就说你前面这不是map test嘛,对吧?那这是5%的意思哈,也就是说100个map test有五个map task已经执行完毕,那我就可以申请reduce task对应的资源。
09:09
啊是这个含义哈,那这个我应该用它默认值就行了,那下面呢说如果程序规定的默认十分钟内没有读到数据,将强制。退出啊,那如果你的积极性能比较差,那这个十分钟啊。有可能很容易就达到了,然后你还没读到数据,他就把你任务杀死了,那这是什么?你要延长这个时间,那如果你这个机器性能比较好,其实用不上十分钟他肯定就能读到数据,一分钟可能就读到数据了,那你就把这个值呢再调小OK吧,哎,这是根据你的性能,那你用默认值也行,十分钟我觉得也可以了啊,十分钟你还读不到数据,那就说明确实有点小问题了啊。好,那下面我们就把这个max呢给配一下。找找感觉啊,在生产文件,看怎么配。呃,Vm map进来。整题s sy c set轴。
10:06
好,分发完毕,接下来我们继续往下看,下面呢是雅N相关参数,其实雅N相关参数啊,之前我们已经讲过了,那这里我就快速过一下啊嗯,你看一下这里面是不是雅N采用的是容量调器啊啊容量调器,然后呢,开启的线程数默认的是50个,那由于呢,我是三台服务器,每台服务器呢是四个线程,那三四一共才12线程,这时你配50个肯定不合适啊,那配多少呢?你实际情况下呢,你还有一定的预留,所以说这一面我就配置了八个啊八个线程。OK,那再往下那这块呢,说你这个延安呢啊,是自己去检测这个按照硬件的这个呃,内存的CPU配置啊进行啊配置你的软件还是说你手动配置,那这块通常我们都会手动人为的去配置啊,这样呢会更准确一些啊好,那下面呢,这个呢是诶是否采用虚拟核数啊,因为我们这三台这个服务器啊,都是这个I7的对吧?啊I7的CPU盒,这时候我们就没有必要啊开启这个虚拟核数,就采用它物理核数是多少就多少了,那这如果你是I3I5I7这种混搭的话,那你可以考虑开启对应的虚拟核数啊。
11:07
那下面呢,这个虚拟核数和物理,那物理核数的一个比例阀值默认是1.0,那这里面我就没有必要,其实不配也行啊,这就可以关掉了,你上面开启的话,那这块可以可以啊,嗯,再往下说,Note manager使用的内存数默认是8G,那你肯定得修改呀,因为你这个,嗯,这个内核一共才四个G,对吧,所以说这块呢,得改一下啊,改成四个G。再来note manager,这个CPU核数默认的是八核,我一共这个这台服务器才四个核,所以说这块得改成四啊。呃,容器的这个最小内存默认是一个G。那这个就一个G就行了,那最大内存呢是八个G,由于我总内存才四个G啊,所以说没有必要我就给它改成啊两个G好。嗯,下面呢,说容器的这个最小CPU核数默认是一个,这个不用改啊,容器的最大CPU核数默认是四个啊,这有点多,我给它改成两个啊好吧。
12:03
啊,虚拟内存的一个检测对吧?啊这个呢,之前给大家讲过,比如说这是物理内存,然后下面呢,它会开启一个虚拟内存,那虚拟内存呢,是物理内存的这个2.1倍对吧,2.1倍,你这呢是4G,呃4G内存,那我这边呢,虚拟出八点,嗯8.4啊8.4内存,那但是呢,这里面算的不准,不准的原因是因为呃,JAVA8和这个LINUX3套S系统,三套S7啊它俩呢都会预留一块内存啊Linux这块内存呢,这个JAVA8呢,它用不了啊,那就会导致这个JAVA8实际用到的内存非常少。哎,产生这种误报情况啊,那怎么办呢?啊,我们就把它给关掉,诶直接用这个物理内存检测就可以了,它物理内内存它够就够啊,不够的话它就报警啊就可以了,好吧,这这个呢,就是雅安相关的配置啊拿过来。这块讲的稍微快一点,但是呢,因为一是因为我们前面啊已经讲过了哈,言set打开。
13:01
SC雅恩赛。行,那这个机器配置就完事了,那接下来我们启动一下集群啊,启动一下。这个参数配置啊,非常重要哈,大家一定要重视起来啊,因为这是真正的把ADS mab和雅N3者呢合在一起啊去调优。好,那启动起来之后,我们查看一下。OK,然后我们打开这个,嗯,As客户端。OK,来这。对吧,哎,打开了,打开这里面有input,对对应的这个内容对吧?啊,这里有三个文件,那output呢,这OUTPUT23啊,没问题啊,那我就不删了啊,那我执行一下这个word,看程序had doop这对吧,这个干掉了啊,嗯,这样,然后s map拍doop啊,Example啊,Word count,然后in put out put,对吧。
14:15
走。好,这里面是三个切片三个文件嘛,然后我们来看一下这个调度器啊,调度器啊打开。看到吗?哎,默认在defpot队列里面正在运行,然后这里面是喷它的这个调度器的一个相关配置,12G内存嘛,总共。呃,然后这是程序的一个运行情况,对吧?运行完了啊,很快啊,很快就运行完了啊,你看一打开啊运行完了,呃,这是因为我们这个配置了相关的这个优化参数,正常,这个你三个小文件的话,计算这个速度啊,还是需要点时间的啊,那这个里面啊进行了相关优化,这个速度呢啊,有明显的一个提升啊,像那这个案例呢,大家回去啊,一定要多敲几遍啊,非常重要啊。
我来说两句