MapReduce 的运行流程

1、运行流程
在这里插入图片描述
由上图可以看到MapReduce 执行下来主要包含这样几个步骤:

  1. 首先对输入数据源进行切片
    2)master 调度 worker 执行 map 任务
    3)worker 读取输入源片段
    4)worker 执行 map 任务,将任务输出保存在本地
    5)master 调度 worker 执行 reduce 任务,reduce worker 读取 map 任务的输出文件
    6)执行 reduce 任务,将任务输出保存到 HDFS
    2、运行流程详解
    以 WordCount 为例
    给定任意的 HDFS 的输入目录,其内部数据为“f a c d e……”等用空格字符分隔的字符串, 通过使用 MapReduce 计算框架来统计以空格分隔的每个单词出现的频率,输出结果如
    <a,10>,<b,20>,<c,2>形式的结果到 HDFS 目录中。
    WordCount 运行图解
    在这里插入图片描述
    MapReduce 将作业的整个运行过程分为两个阶段:Map 阶段 Reduce 阶段。Map 阶段由一定数量的 Map Task 组成,例如:
    输入数据格式解析:InputFormat
    输入数据处理:Mapper
    数据分组:Partitioner
    数据按照 key 排序
    本地规约:Combiner(相当于 local reducer,可选)
    将任务输出保存在本地
    Reduce 阶段由一定数量的 Reduce Task 组成,例如:
    数据远程拷贝
    数据按照 key 排序
    数据处理:Reducer
    数据输出格式:OutputFormat
    通常我们把从 Mapper 输出数据到 Reduce 读取数据之间的过程称之为 shuffle。
    3、MapReduce 开发流程
    搭建开发环境,参考 HDFS 环境搭建,基本一致
    基于 MapReduce 框架编写代码
    编译打包,将源代码和依赖 jar 包打成一个包
    上传至运行环境
    运行 hadoop jar 命令,现已由 yarn jar 替代,建议使用新命令提交执行具体提交命令为:
    yarn jar testhdfs-jar-with-dependencies.jar com.driver.WordCount /tmp/input /tmp/output3
    通过 yarn web ui 查看执行过程
    查看执行结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值