mapReduce

用户头像
关注
发布于: 2020 年 09 月 02 日
mapReduce

mapReduce

输入输出: 都为key value

框架流程:先将数据分片,通过map线程处理,输出到文件里,把相同的key通过网络拷贝到不同的服务器,交给reduce处理再排序后相同的key合并,再将key,value写到磁盘文件里

map进程和reduce进程一般不在同个服务器,通过网络拷贝的方式将数据从map拷贝到reduce

reduce输入要求相同的key在一起,通过key排序

重要的单词

shuffle: 把相同的key通过网络拷贝到不同的服务器

mapReduce1的架构:



JobTracker服务器:

TaskTracker&DataNode服务器:



1、作业jar包存储在HDFS ,在dataNode上(缺省拷5份)

2、提交作业到Jobtracker

3、创建一个数据结构 Jobinprocess,JobTracker分析分成多少个数据块

4、多少个数据块就创建多少个Taskinprocess



inputFormat

getSplits:List<InputSplit>() 将输入文件切分成逻辑的InputSplits,一个InputSplits将被分配给一个单独的Mappertask

createRecordReader:RecordReader<K,V>() 从InputSplits中正确读出一条一条的K-V给Mapper使用



Partitioner: 通过Partitioner对key进行分区。框架默认HashPartitioner,可以自己重写Partitioner



Yarn 架构

资源管理器:资源调度器和应用管理程序

节点管理器:跟HDFS的DataNode进程一起出现



用户头像

关注

everything will be alright 2020.04.06 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
作业请添加“极客大学架构师训练营”标签,便于分类
2020 年 09 月 03 日 10:28
回复
没有更多了
mapReduce