首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MapReduce整体介绍

MapReduce框架(Map/Reduce) MapTask/ReduceTask 数据分发机制             MapTask接口实现类 : 对一行数据进行处理,map方法             ReduceTask接口实现类:对一组数据进行处理,reduce方法         MapReduce工作机制         划分输入切片: 数据切片             job.split文件         分布式数据处理         K相同的KV数据分配给同个ReduceTask         组合拳:CompareTo + Partation + Group         分区控制/分组控制         MapReduce编程模型             map task的实现                 读数据:TextInputFormat                          SequenceFileInputFormat                          DBInputFormat                 portation 分区                 调用Partitaioner 的getPartition 决定数据分区             reduce task的实现                 读数据:下载"区"数据,并且合并多个"同区"并且排序                 写数据:TextInputFormat                         SequenceFileOutputFormat                         DBOutputFormat             GroupingComparator:分组                 确定那些数据属于同一组         对倾斜数据的处理             1. 通过Combiner组件进行maptask端局部聚合数据减轻倾斜影响             2. 通过打算倾斜数据来消除倾斜的影响,通过在Key值后面添加随机值,这样就可以均衡的分布在ReduceTaks端。         MapReduce编程模型具体实现及处理流程:             MRAppMaster                 YarnChild(maptask/reducetask)                     main()                 1. MapTask:                     ->TextInputFormat                         ->LineRecordFromat                             ->Mapper                                 ->map()                                     ->context   --->  MapOutputCollector 环形缓存,存在大小限制                                                         ->spilter (80%) 分区(partation),排序(compare)                                                         ->write 溢出文件(可能包含多个文件,有序文件) 写本地磁盘                                                         ->merge 分区有序,分区索引文件                     多个maptask会生成多个merge文件                 2. Shuffle: Store && Rest                     map task 生成的数据传输给reduce task 的过程                    多个maptask会生成多个merge文件,这些文件会保存在NodeManager中,NodeManager具有Web服务,ReduceTask会通过Web服务下载merge文件,进行处理                         3. ReduceTask                     -> http下载:从多个DataManager中下载merge文件下载单个分区的KV数据,多个文件合并为一个文件

01

【折腾不止】前端工程与性能优化

作者:addy(许斌),前端开发工程师,文艺青年一枚,写得了文章,编得了代码。 作为开发,不仅仅是前端,优化总是你绕不开的事,我们的目标就是要产品变得更快。优化的对象不仅仅指产品本身,还有我们日常的开发流程。从加入团队到现在,大概有一半左右的时间花在了优化上,期间遇到了很多问题,回过头看,优化这件事情并不是那么简单,也是些很琐碎的事情,要打造一个无痛的开发流程,并且能够相对轻松的对产品持续优化真的不轻松。没有银弹,任何项目都要花很多时间和精力。但任何值得改善的地方能够有所提升都让我们觉得努力没白费。有时候只

08
领券