产品经理学大数据——大数据软件框架:Hadoop框架(2)之MapReduce(分布式计算框架)

MapReduce是一种编程模型,用以大数据量地批处理计算。

  • MapReduse的思想——Map & Reduce

MapReduce的思想是将批量处理的任务主要分成两个阶段(Map和Reduce阶段),所谓的Map阶段就是把数据生成“键-值”对,按键排序。中间有一步叫shuffle,把同样的key运输到同一个reducer上面去,在reducer上,因为都是同一个key,就直接可以做聚合(算出总和),最后把结果输出到HDFS上。对于应用开发者来说,你需要做的就是编写Map和Reduce函数,像中间的排序、shuffle网络传输、容错处理等,框架已经帮你做好了。

  • MapReduce使用场景

JobTracker:这是主节点,只有一个,它管理所有作业,作业/任务的监控、错误处理等。它将任务分解成一系列的子任务(Map任务、Reduce任务、Shuffle操作),并分派给TaskTracker。

TaskTracker:这是从节点,可以有多个,它们接收来自JobTracker的Map Task、Reduce Task和Shuffle operations,并执行。它们与JobTracker交互,汇报任务状态。

Map Task:解析每条数据记录,并传递给用户编写的map(),并执行,最后将输出结果写入本地磁盘(如果为map-only作业,直接写入HDFS)。

Reduce Task:从Map Task的执行结果中,对数据进行排序,将数据按照分组传递给用户编写的Reduce函数执行。

  • MapRudece工具的使用

我们现在很少直接使用MapReduce框架来编写程序了,而是使用基于MapReduce框架的工具来编写,或者直接用Spark等工具来编写。

MapReduce支持C/C++、Java、Ruby、Perl和Python编程语言。开发人员可以使用MapReduce库来创建任务。至于节点之间的通信和协调,输入数据集的切割,在不同机器之间的程序执行调度,处理错误等,这些都有框架完成,开发人员无需处理。Map和Reduce函数会自动在多个服务器节点上自动并行执行。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值