hadoop简单运行流程

Hadoop集群中分主节点master节点和slave节点,master节点监控slave节点。master和slave之间通过ssh协议进行通信。

master节点上部署有JobTracker和NameNode,当然也可以部署TaskTracker和DataNode。slave节点上部署TaskTracker和DataNode节点。

JobTracker监控TaskTracker,NameNode管理DataNode节点。每个TaskTracker节点又有若干个map和reducer槽。每个map槽或reduce槽就代表一个任务。

TaskTracker监控本机的map和reduce任务。如果map任务或reduce任务有更新,会通过心跳(一般间隔是3秒)告诉TraskTracker,

TraskTracker再通过心跳(一般至少5s,因为代价比较大)告诉JobTracker。

1。整体流程

一道MapRedcue作业是通过JobClient.rubJob(job)向master节点的JobTracker提交的, JobTracker接到JobClient的请求后把其加入作业队列中。

JobTracker一直在等待JobClient通过RPC提交作业,而TaskTracker一直通过RPC向 JobTracker发送心跳heartbeat询问有没有任务可做,如果有,

让其派发任务给它执行。如果JobTracker的作业队列不为空, 则TaskTracker发送的心跳将会获得JobTracker给它派发的任务。这是一道pull过程。

slave节点的TaskTracker接到任务后在其本地发起Task,执行任务。

名词解释

1.1.JobClient

每一个job都会在用户端通过JobClient类将应用程序以及配置参数打包成jar文件存储在HDFS,并把路径提交到JobTracker,然   后由JobTracker创

建每一个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。

1.2.JobTracker

JobTracker是一个master服务,启动之后JobTracker会接收job,负责调度job的每个子任务task运行于TaskTracker上,并监控它们,如

果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。

1.3.TaskTracker

TaskTracker是运行于多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。2.主要数据结构

2.1.JobInProgress

JobClient提交job后,JobTracker会创建一个JobInProgress来跟踪和调度这个job,并把它添加到job队列里。JobInProgress会根据提交的job jar中

定义的输入数据集(已分解成FileSplit)创建对应的一批TaskInProgress用于监控和调度MapTask,同时在创建指 定数目的TaskInProgress用于监控和

调度ReduceTask,缺省为1个ReduceTask。

2.2.TaskInProgress

JobTracker启动任务时通过每一个TaskInProgress来launchTask,这时会把Task对象(即MapTask和ReduceTask)序列化写入相应的TaskTracker服

务中,TaskTracker收到后会创建对应的TaskInProgress(此TaskInProgress实现非JobTracker中使用的 TaskInProgress,作用类似)用于监控和调度

该Task。启动具体的Task进程是通过TaskInProgress管理的TaskRunner对象来运行的。TaskRunner会自动装载job jar,并设置好环境变量后启动一个

独立的java child进程来执行Task,即MapTask或者ReduceTask,但它们不一 定运行在同一个TaskTracker中。

2.3 MapTask和ReduceTask

一个完整的job会自动依次执行Mapper、Combiner(如有的话)和Reducer,其中Mapper和Combiner是由MapTask调用执行,Reducer则

由ReduceTask调用,Combiner实际也是Reducer接口类的实现。Mapper会根据job jar中定义的输入数据集 按<key1,value1>对读入,处理完成生成

临时的<key2,List value2>对,如果定义了Combiner,MapTask会在Mapper完成调用该Combiner将相同key的值做合并处理,以减少输出结果集。

MapTask的任务全完成即交给ReduceTask进程调用Reducer处理,生成最终结果<key3,value3> 对。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 04:02:13

hadoop简单运行流程的相关文章

Hadoop Mapreduce运行流程

Mapreduce的运算过程为两个阶段: 第一个阶段的map task相互独立,完全并行: 第二个阶段的reduce task也是相互独立,但依赖于上一阶段所有map task并发实例的输出: 这些task任务分布在多台机器运行,它的运行管理是有一个master负责,这个master由yarn负责启动,那么yarn如何知道启动多少个map task进程去计算呢? 下面概述一下Mapreduce的执行流程: 1.客户端首先会访问hdfs的namenode获取待处理数据的信息(文件数及文件大小),形

hadoop笔记之MapReduce的运行流程

MapReduce的运行流程 MapReduce的运行流程 基本概念: Job&Task:要完成一个作业(Job),就要分成很多个Task,Task又分为MapTask和ReduceTask JobTracker TaskTracker Hadoop MapReduce体系结构 JobTracker的角色 作业调度 分配任务.监控任务执行进度 监控TaskTracker的状态 TaskTracker的角色 执行任务 汇报任务状态 MapReduce作业执行过程 MapReduce的容错机制 重复

django简介,安装,文件介绍,三板斧(render,HttpResponse,redirect)HTTP协议,用socket实现简单版web框架,用wsgiref,jinja2,pymysql实现Django运行流程

1.web应用(https://www.cnblogs.com/Dominic-Ji/p/9167438.html) c/s,b/s架构c/s:客户端 服务端b/s:浏览器 服务器?   2.HTTP协议: 超文本传输协议 四大特性: 1.基于TCP/IP作用在应用层之上的协议,底层实现仍为socket 2.基于请求响应:通信一定是从客户端开始,服务器端接收到客户端一定会做出对应响应 3.无状态:协议不对任何一次通信状态和任何数据做保存 4.无连接:一次连接只完成一次请求-响应,请求-响应完毕后

Struts2.1的运行流程的简单分析(个人见解)

Struts2.1的运行流程大致分为以下几个步骤: 1.用户输入URL请求,该请求被StrutsPrepareAndExecuteFilter拦截,根据welcome-file属性的设置跳转到相应的jsp页面. 2.用户在jsp页面发出的相应的处理请求. 3.该处理请求也会被StrutsPrepareAndExecuteFilter拦截,首先清理当前线程的ActionContext和Dispatcher防止内存的泄露,接下来询问ActionMapper(Action映射器)来决 定这个请求是否需

在Hadoop上运行基于RMM中文分词算法的MapReduce程序

原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词算法的MapReduce程序 23条回复 我知道这个文章标题很“学术”化,很俗,让人看起来是一篇很牛B或者很装逼的论文!其实不然,只是一份普通的实验报告,同时本文也不对RMM中文分词算法进行研究.这个实验报告是我做高性能计算课程的实验里提交的.所以,下面的内容是从我的实验报告里摘录出来的,当作是我学

hadoop wordCount运行

本文以康哥的博客为基础进行修改和补充,详见:http://kangfoo.github.io/article/2014/01/hadoop1.x-wordcount-fen-xi/ hadoop mapreduce 过程粗略的分为两个阶段: 1.map; 2.redurce(copy, sort, reduce) 具体的工作机制还是挺复杂的,这里主要通过hadoop example jar中提供的wordcount来对hadoop mapredurce做个简单的理解. Wordcount程序输入

springmvc的运行流程分析

前几篇文章对springmvc讲解的很清楚,大家看下,有问题,我们再一起讨论. 其实springmyuxvc最为重要是它的运行流程,接着,我们来分析一下,其运行过程,废话不多说,看图说话: 分析如下: 1,用户发起请求到前端控制器(DispatchService) 2,前端控制器通过HandlerMapping找到Handler(即是Action) 3,HandlerMapping返回HandlerExecutionChain(执行链),该执行链包含两部分内容,(Handler对象,拦截器数组)

1、CC2541蓝牙4.0芯片中级教程——基于OSAL操作系统的运行流程了解+定时器和串口例程了解

本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 中级教程-OSAL操作系统(OSAL系统解基本套路) 中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~ 中级教程-OSAL操作系统(ADC-光敏电阻) OSAL操作系统-实验16 串口波特率扩展 OSAL操作系统-实验1

MapReduce运行流程分析

研究MapReduce已经有一段时间了.起初是从分析WordCount程序开始,后来开始阅读Hadoop源码,自认为已经看清MapReduce的运行流程.现在把自己的理解贴出来,与大家分享,欢迎纠错. 还是以最经典的WordCount程序作为基础,来分析map阶段.reduce阶段和最复杂的shuffle阶段. 文本1:hello world                                      文本2:map reduce hello hadoop