温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,接下来我们来看一下map reduce生产经验相关的一些内容,那它呢,绝对是重点啊,无论是面试还是开发都是重点,需要大家呢认真掌握。那首先来看第一个问题,说mapdu跑得慢。那你怎么办?比在生长环境下,你突然间执行一个程序,它执行的非常缓慢。哎,可能说这个数据量不是特别大,但是我执行了很久很久一直没有执行完,那你应该从哪几个方面进行对数据的一个分析。对吧,这是我们要思考的问题。那如果发现你这个某一个map,这程序跑得慢,你应该从以下两个方面进行一个查找,第一块呢是你计算机本身的性能比,说你服务器到底好不好。那你要检查一下你的服务器,你的CPU是否充足。你的内存是否够用对吧,你的磁盘的这个速度是否是达到了最佳。哎,冷热数据是否分离。那如果网络的话,那就说你网络上的带宽够不够用。哎,你首先先从硬件上进行一个检查。
01:03
检查完之后发现这些配置都都是顶配啊,各方面都比较高,哎,那好,那接下来你再从IO操作方面进行一个优化。也就说你检查一下你的数据呢,有没有发生数据倾斜。什么叫数据倾斜呢?啊,简单给大家说一下啊,假如说你前面有这么多map,对吧?啊然后呢,这有三个reduce。那这三个reduce呢,它出现这种情况,大量的这个数据啊,比如说K相同的内容发送到某一个reduce里面了。导致呢,这个reduce一直没有结束,其他reduce快速结束了。哎,这就叫发生了数据倾斜,那后面呢,我这里有一个方案对吧?哎,如何来解决。这是其中一个场景,那还有场景呢,就是你的map运行时间太长,导致reduce等待时间过久,比如说map一直在运行,一直一直在运行,运行。哎,等待了好久,导致你这个迈这个程序,其中map占用了大部分时间,然后reduce呢,诶等了很久很久之后,然后才开始执行。
02:01
这是一种情况。那还有一种场景呢,就是小文件过多。小文件啊,那就是每一个小文件,之前咱说过,比如说1K呃,或者是2K这种小文件。它呢,都会占用一个map test。对吧?哎,那你开启了大量的小文件,你就会有大量的这个map task进行参与运算,导致你集群资源不够啊,运行缓慢。啊,那这时候呢,我们就来得有解决小文件的对应的办法,那我们后面这块呢,也是有专门的解决小文件对吧?啊这个呢是解决数据倾斜。OK吧,也就是说遇到问题之后,你要知道从哪几个方面去下手。
我来说两句