云计算必学知识,MapReduce工作原理讲解

    作者:课课家教育更新于: 2017-01-09 17:32:40

      在未来,当管理员搭建服务器的时候,他或者她很可能会给服务器堆栈、数据库、中间件软件装上MapReduce,根据国外认证报道显示MapReduce可以在服务器上直接被用来分析日志数据,并不需要是在各个集群上单独分析,也可以大幅缩短分析数据的时间,本文将是跟大家进行MapReduce工作原理讲解,有在学习的朋友们可以参考学习一下。

      第一部分:首先我们来看看MapReduce工作原理是怎样的,掌握了解之后将会是对MapReduce更加理解。

    云计算必学知识,MapReduce工作原理讲解_云计算_MapReduce_云平台_课课家

      MapReduce角色

      •Client:作业提交发起者。

      •JobTracker:初始化作业,分配作业,并且是与TaskTracker通信,最后是协调整个作业。

      •TaskTracker:保持JobTracker通信,在分配的数据片段上执行MapReduce任务。

    折行图

      提交作业

      •在作业提交之前,是需要对作业进行配置

      •程序代码,主要是自己书写的MapReduce程序。

      •输入输出路径

      •其他配置,比如输出压缩等这些

      •当配置完成后,可以是通过JobCliNET来进行最后的一个提交

      作业的一个初始化

      •当客户端提交完成后,JobTracker它就会将作业加入到队列里面,然后是进行调度,它的默认的调度方法是FIFO调试方式。

      任务的分配

      •需要知道TaskTracker和JobTracker它们之间的通信与任务的分配它是通过心跳机制完成的。

      •有趣的是TaskTracker它是会主动向JobTracker询问是否是有作业是需要完成的,若自己是可以做的,则就会申请到作业任务,这个任务可以使Map也可能是Reduce任务。

      任务的一个执行过程

      •当申请到任务后,TaskTracker它就会做如下事情:

      (1)需要是拷贝代码到本地

      (2)拷贝任务的信息到本地

      (3)启动JVM运行任务

      状态与任务的更新

      •任务在运行过程中,它是首先会将自己的状态汇报给TaskTracker,然后由TaskTracker汇总告之JobTracker。

      •需要知道的是任务的一个进度是通过计数器来实现的。

      最后是作业的完成

      •JobTracker它是在接受到最后一个任务运行完成后,它才会将任务标志为成功。

      •这个时候会做删除中间结果等善后处理工作。

      总的来说,需要了解的是MapReduce是一种编程的模型,并且是用于大规模数据集(大于1TB)的并行运算。从基本的概念“Map(映射)”和“Reduce(化简)”和他们的主要思想,这些都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。可以方便编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。

课课家教育

未登录

1