前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MapReduce整体介绍

MapReduce整体介绍

作者头像
Freedom123
发布2024-03-29 08:32:47
1300
发布2024-03-29 08:32:47
举报
文章被收录于专栏:DevOpsDevOps

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数据,多个文件合并为一个文件                     -> Reducer                         ->reduce                             ->context                                     ->KV  ---->   TextInputFormat(可重写)                                                 ->getRecordWrite                                                     ->recordWrite                                                         ->write                                                             ->Local/HDFS 文件                     多个ReduceMask 会生成多个 Local/HDFS 文件         数据输入输出类型:             TextInputFormat             TextOutputFormat             SequenceFile             Job.setInputFormat             Job.setOutputFormat             Job.setPartation             Job.setGroupComparator             Job.setMapperClass             Job.setReduceClass             Job.setReduceTaskNum             Job.setCombinerClass         YARN框架:             ResourceManager 不一定对应NameNode             ApplicationMaster 可能在任何DataNode上             DataManager    对应DataNode                 容器                     MapTask/ReduceTask         YARN WEB端口:8088         配置文件:yarn-site.xml,mapred-site.xml                 CPU/MEMERY配置:1Core/2G         Mapper              map(key,value,context)         Reducer()             reduce(key,interator,content)             cleanUp(content)         Partation(分区) :配合Reducer进行分组处理             WritablePartation             hashCode(key,value,content)         Comparator(分组)             WritableComparator             compare         Content             configuration             spiit                 FileSplit/DBSplit                 filename/dbname                 offset/linenum         ### 执行(三种方式):         1. (任务下发)windows下调用yarn启动job:需要在客户端配置configuration         2. (生产) linux下调用yarn启动job:需要在启动jar包的主机配置 相关xml参数         3. (调试) windows下执行local job:需要包含hadoop运行环境,即下载windos执行包,并且配置HADOOP_HOME路径并且添加到PATH

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档