一、MapReduce工作流程1
创新互联公司10多年
成都企业网站建设服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,
成都企业网站建设及推广,对
成都社区文化墙等多个领域拥有多年设计经验的网站建设公司。
- MapReduce将输入的数据集逻辑切片split
- map任务以并行方式处理切片数据
- 框架对map输出排序,然后将数据发送给reduce
- MapReduce的输入输出数据存在于同一个文件系统HDFS
- 框架负责任务调度、任务监控和失败任务的重新执行
- MapReduce处理键值对形式的很多键值对输入,生成键值对形式的很多键值对输出
- 框架会对键和值序列化,因此键类型和值类型需要实现Writable接口,框架对键进行排序,因此必须实现WritableComparable接口
- map输出键值对类型和reduce键值对输入类型一致
- map的输入键值对类型和输出键值对类型一般不一致
- reduce的输入键值对类型和输出键值对类型一般不一致
二、MapReduce工作流程2
- 每个block会有map任务
- block切分为切片,每个切片对应一个map任务,默认一个block一个切片,一个map
- map默认按行读取切片数据,组成键值对<当前行字节偏移量, "读到的行字符串">
- map函数对该键值对进行计算,输出若干键值对。
- partition指定该键值对由哪个reducer进行处理
- map输出的kvp写到环形缓冲区,环形缓冲区默认100MB,阈值80%,当环形缓冲区达到80%就向磁盘溢写小文件,该小文件首先按照分区号排序,相同分区号的按key进行排序
- 默认如果落磁盘的小文件达到了3个,则进行归并,归并的大文件也是按分区号排序,相同分区号按照key进行排序,只是一个归并。
- 如果map任务处理完了,它的输出被下载到reducer所在主机
- 按照HTTP GET的方式下载reducer,reducer发送HTTP GET请求到mapper主机下载数据,该过程是洗牌shuffle
- 每个map任务都要经历运行结束洗牌的过程
- 等所有map任务都运行结束,并且洗牌结束,每个reducer获取到它自己应得的所有数据,此时开始reducer处理过程
- 如果有时间,reduce会对洗牌获取的数据进行归并落磁盘
- 如果没有时间,也归并,只是可能不落磁盘,直接交给reduce方法进行迭代处理
- 洗牌获取到的数据也可能不落磁盘,此时归并的键值对来源可能是磁盘的和内存的一个混合
- reduce按照key进行分组,每个分组调用一次reduce方法,该方法迭代计算,将结果写到HDFS输出
三、MapReduce作业提交流程
- 客户端,提交MapReduce作业
- YARN的资源管理器(Resource Manager),协调集群中计算资源的分配
- YARN的节点管理器(Node Manager),启动并监控集群中的计算容器
- MapReduce的Application Master,协调MapReduce作业中任务的运行。Application Master和MapReduce任务运行于容器中,这些容器由resourcemanager调度,由nodemanager管理
- 分布式文件系统(一般是HDFS),在组件之间共享作业数据。Job对象的submit方法创建了一个内部的JobSubmitter实例并调用该实例的submitJobInternal方法。一旦提交了作业,waitForComletion方法每秒钟轮询作业的执行进度,如果进度发生了变化,则向控制台报告进度。当作业成功完成,展示作业计数器的数据,否则展示作业失败的错误日志信息
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:大数据之Hadoop的mapreduce-创新互联
转载来源:
http://cxhlcq.com/article/dgipid.html