ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

极客时间大数据训练营|完整分享

2022-01-15 15:32:15  阅读:214  来源: 互联网

标签:文件 极客 训练营 reduce 分区 分享 数据 ResouceManager 客户端


威❤ itspcool 一起交流学习

大数据训练营Downloadhttps://www.ukoou.com/resource/1114 【复制打开】

jk大数据训练营学习心得

相对于算法岗来说,大数据开发岗位对于从业者的学历要求并不算高,很多本科生也都在从事大数据开发岗,但是这些本科生往往都具有比较丰富的开发经验,对于刚毕业的本科生来说,如果想从事大数据开发岗通常还需要一段时间的积累。

大数据开发通常有两种方式,一种是大数据平台的研发,这一类岗位属于研发岗,对于从业者的要求非常高,目前很多研究生毕业后往往会从事平台研发岗位,但是通常也需要一段时间的技术积累。实际上当前有很多程序员想从事平台研发岗位,但是受限于自身的知识结构,所以往往也会选择通过读研来促进自身的岗位升级。

大数据训练营 - 面试题

Hadoop Yarn的工作流程:
(1)首先,客户端向整个集群提交MapReduce作业,并向ResouceManager申请一个作业id;

(2)然后,ResouceManager给客户端返回该作业资源的提交路径和作业id;

(3)这时候,客户端根据ResouceManager返回来作业提交路径,将jar包、切片信息和配置文件信息提交到指定路径下;

(4)当客户端提交完资源后,开始向ResouceManager申请运行MRAppMaster;

(5)ResouceManager收到客户端的请求之后,会将客户端提交的job初始化成一个个task,并且放入到容量调度器中;

(6)当某一个空闲的NodeManager领取到该作业之后,该NodeManager就开始创建Container容器,启动MRAppMaster进程,并且下载客户端提交的资源到本地;

(7)接着,MRAppMaster进程向ResouceManager申请运行多个MapTask任务资源;

(8)ResouceManager将运行的MapTask任务分配给空闲的NodeManager,NodeManager分别领取到任务后,开始创建容器,并且启动运行MapTask任务;

(9)当所有的MapTask任务运行完成之后,MRAppMaster进程向ResouceManager申请运行多个ReduceTask任务资源;

(10)当所有的ReduceTask任务运行完毕之后,MapReduce程序会向ResouceManager申请注销自己,并释放资源;

极客时间大数据训练营 Yarn的工作流程

如何能够让Map执行效率最高

1、调大环形缓冲区的大小,将100MB调更大。

2、调大环形缓冲区阈值(80%)的大小。

3、对Map输出的数据进行压缩。

尽量减少环形缓冲区溢写的次数,减少IO的使用。

MapReduce如何优化?

(1)小文件优化

Hadoop适合大文件的处理和存储,但是不适合小文件?为什么?

存储方面:

hadoop的存储每个文件都会在NameNode上记录元数据,如果小文件过多,造成NameNode的压力。

读取方面:

同样大小的文件分为很多小文件的话,会增加磁盘寻址次数,降低性能。

计算方面:

一个map默认处理一个分片或者一个小文件,如果map的启动时间都比数据处理的时间还要长,那么就会造成性能低,而且在map端溢写磁盘的时候每一个map最终会产生reduce数量个数的中间结果,如果map数量特别多,就会造成临时文件很多,而且在reduce拉取数据的时候增加磁盘的IO。

解决方法:

1、从源头干掉,也就是在hdfs上我们不存储小文件,在数据上传hdfs的时候我们就合并小文件,对小文件进行归档(Har)、自定义Inputformat将小文件存储成SequenceFile 文件;

2、在FileInputFormat读取入数据的时候我们使用实现类CombineFileInputFormat读取数据,在读取数据的时候进行合并,解决输入端大量小文件场景;

3、对于大量小文件Job,可以开启JVM重用;

(2)数据倾斜问题优化

1、既然默认的是hash算法进行分区,那我们自定义分区,修改分区实现逻辑,结合业务特点,使得每个分区数据基本平衡

2、既然有默认的分区算法,那么我们可以修改分区的键,让其符合hash分区,并且使得最后的分区平衡,比如在key前加随机数。

3、既然reduce处理慢,我们可以增加reduce的内存和核数,这样可以提高一点性能,虽然没从根本上解决问题,但是还有效果。

4、既然一个reduce处理慢,那我们可以增加reduce的个数来分摊一些压力呀,虽然也不能从根本上解决问题,还是有一定的效果。

标签:文件,极客,训练营,reduce,分区,分享,数据,ResouceManager,客户端
来源: https://www.cnblogs.com/kooyufer/p/I5807121.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有