大数据之Hadoop的mapreduce-创新互联-成都快上网建站

大数据之Hadoop的mapreduce-创新互联

一、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://kswjz.com/article/dgipid.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流