hadoop之MapReduce

MapReduce是hadoop的三驾马车之一,是一个批处理计算框架。

 

以下内容中,为方便描述 MapReduce有时简写为MR。

理论基础:源自于Google发表于2014年12月的MapReduce论文,可以把Hadoop MapReduce是Goole MapReduce的克隆版。

整体思路:局部性原理将整个问题分而治之。

MR之前,数据分布在各个节点;MR时每个节点就近读取本地存储的数据处理(MAP)-处理后的数据进行合并(combine)-排序(shuffle & sort)-分发到各个reduce节点。

 

图片

MapReduce特性:

  • 易于编程

    (1)用户主要考虑如何使用MR模型,实现几个hook函数即可实现一个分布式程序。

    (2)由mapTask 和 reduceTask组成。

    (3)分发、合并、同步、监测均由执行框架负责,用户无需关心。

  • 良好的扩展性(HDFS的分布式存储特点)

  • 高容错性(HDFS数据副本策略)

  • 适合海量数据的离线处理(就近读取,避免大量数据传输,提高处理效率)

 

任何编程语言和框架都有适合和不适合的场景,

MapReduce亦是如此:

适合的场景
  1. 数据统计,比如网站的PV、UV统计

  2. 搜索引擎索引

  3. 海量数据查找

  4. 复杂数据分析算法实现

        (1)聚类算法

        (2)分类算法

        (3)推荐算法

        ... ... 

不适合的场景
  1. 实时计算:能够在毫秒或者秒级内返回结果

  2. 流式计算:输入数据集是静态的,不能够动态变化

  3. DAG 计算:多个作业之间存在依赖关系,后一个应用程序输入为前一个应用程序输出。

 

 

如果觉得这篇文章对您有帮助,欢迎关注公众号 “学点儿编程”,公众号不断推送干货文章!

图片

MapReduce将作业的整个运行过程分为Map阶段和Reduce阶段 

下面表格中,红色字体部分属于可自定义的范围。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值