您的位置:首页 > 大数据 > Hadoop

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

2019-02-14 20:22 603 查看

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函数会自动在多个服务器节点上自动并行执行。

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐