MapReduce的计算模型(编程模型)

 

MapReduce的主要应用场景

  可以转化为MR任务的条件:

  • 问题必须可以拆分
  • 子问题必须独立
  • 数据结构能够满足key-value的这样的模式

  常见场景:

  • 计数与求和,如:日志查询、统计分析
  • 整理归类,如:构建倒排索引,ETL(Extract-Transform-Load 用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。)、数据查询校验
  • 分布式任务执行,如:性能测试
  • 排序,排重,如:数据分析,ETL
  • 关系运算,如:连接、投影
  • 图处理,如:网页索引,图分析

 MapReduce的不适用的场景

  • 任务之间有结果依赖,如 斐波那契数列 Fn=F(n-1)+F(n-2)
  • 处理需要及时相应的任务,高并发请求的任务

MapReduce开发基本思路和流程

  思路

  • 任务是否可以拆分?
  • 子任务是否独立?
  • 树立业务需求,将数据需求转化为(K,V)模式
  • 选择设计K和V
  • 设计K和V的经过map和reduce的变换过程,一次迭代不够则需要多次

  流程

  • 继承Mapper类,实现map函数
  • 继承Reducer类,实现reduce函数
  • 设置Job相关信息
  • 提交Job运行

MapReduce    Java API

转载于:https://www.cnblogs.com/jiangbs/p/9110065.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值