Hadoop源码流程分析4-Task节点执行任务

告别JsonUtility和Newtonsoft:为什么我最终选择了轻量级的LitJson(Unity全平台实测) 本文深度评测Unity中三大JSON库(JsonUtility、Newtonsoft.Json和LitJson)的性能与特性,重点推荐轻量级LitJson在WebGL和移动端的优势。通过实测数据对比和实战案例,揭示LitJson在动态类型处理、包体优化等方面的卓越表现,并提供类型转换避坑指南和最佳实践,帮助开发者高效处理JSON数据。 阅读详情

上节介绍了Task节点向Master节点发送心跳信号,从而接收任务,然后部署和启动任务,本节介绍Task节点具体的执行任务的过程。首先,Task节点根据任务的类型,执行MapTask.run()或者ReduceTask.run()这两个方法,下面分别介绍。

 

1.     MapTask.run();

主要代码:

initialize(job, getJobID(), reporter, useNewApi);

......

if (useNewApi) {

       runNewMapper(job, split,umbilical, reporter);

} else {

       runOldMapper(job, split,umbilical, reporter);

}

这里主要包括两个关键块:一个是initialize这里会根据预设的OutputFormat来格式输出,然后就是从runNewMapper()或runOldMapper()处执行map任务。

用runNewMapper举例:首先程序先生成任务的map类,然后生成map任务的数据输入格式类,并根据我们的数据输入格式将我们的这块的数据分割成我们的指定的输入数据就是RecordReader,然后将RecordReader作为输入循环调用map类中的map()方法,也就是我们的客户端的主体map方法。

 

2.     ReduceTask.run();

       首先与map的开始过程一样,会调用initialize()方法,根据预设的OutputFormat来格式输出。

       然后,比map阶段多了一些操作。如果是本机运行程序,reduce的数据会在操作前利用Merge函数合并一下;如果是在集群上运行,那么reduce的数据先进行Combine和Shuffle。

       最后从runNewReducer()或runOldReducer()处执行map任务。首先程序先生成任务的reduce类,生成key、value数据对遍历对象,然后循环执行Reducer.reduce()方法,结果上传到fs中。
activiti根据当前节点获取下一个UseTask节点 以前写过一篇文章activiti根据当前节点获取下一个节点信息,当时的需求只是需要获取下一个节点而已,并没有要求获得什么类型的节点,所以下一个节点可能是任何节点,在最近的项目中的需求是根据当前的节点获取下一个UseTask节点,为当前审批人选择下一个审批人提示,所以前面的文章所给出的信心就不能够实现当前功能。 所以本文所述为获取下一个任务节点。根据上一篇文章,可以获取到下一个节点的信息,如果我们获 阅读详情

相关推荐

Spark 任务提交流程说明

本篇主要阐述 Spark 任务提交的流程,其主要目的在于通过了解 Spark 任务提交可以清楚大概的流程,并知道每一步是做什么;当遇到问题可以快速的知道是什么环节或者哪一步骤出现了问题,及时定位到问题并解决。目前Spark官方支持五中集群管理模式,分别是 Standalone、Yarn、Mesoes、Kubernetes、Amazon EC2 等。本篇文章主要阐述笔者平时经常使用的 Standalone 与 Yarn 集群管理模式。..................

Small_Ran的博客 6180

linux指定节点运行任务,Task节点管理启动任务

1. 代码执行流程1)TaskTracker的启动的时候会加载所有信息,包括利用RPC获得JobTracker 的RPC变量定义为jobClient;TaskTracker.run()方法会去循环向JobTracker心跳,在里面主要调用TaskTracker. offerService()方法;2)offerService()方法首先调用JobTracker....

weixin_42210038的博客 819

MapReduce源码分析——MapTask流程分析

前言 首先要说,MapTask,分为4种,分别是Job-setup Task,Job-cleanup Task,Task-cleanup和Map Task。 Job-setup Task、Job-cleanup Task分别是作业运行时启动的第一个任务和最后一个任务,主要工作分别是进行一些作业初始化和收尾工作,比如创建和删除作业临时输出目录;Task-cl...

SmallCatBaby的博客 627

流程中的Task节点(上)

<br />内容<br />使用变量<br /> 指定任务分配者<br /> 指定任务候选人<br /> 任务变量<br />1。 变量<br />流程变量在流程外部,可以通过ExcutionService提供的方法进行访问<br /> 缺省情况下,变量会创建在顶级的流程实例中<br /> 流程变量可以动态创建<br />Jbpm支持的变量类型:<br /> java.lang.String、java.lang.Long、java.lang.Double、<br />

ycjunhua的专栏 2034

Hadoop源码分析-综述

2021SC@SDUSC

LittleBiscu1t的博客 536

Klocwork安装

简单介绍一下Klocwork在windows下的安装,操作系统是win7,Klocwork的版本是10.0。 第一步:由于Klocwork的安装程序已十分成熟,所以在安装之前不需要什么准备共走。双击Klocwork的安装包,会出现下图的安装引导界面,点击Next按钮。 第二步:下图是协议界面,点击Next按钮。 第三步:选择Klocwork的安装目录,点击Next按钮 第四步:

旮旯 9931

Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务

源码流程分析3-Task节点管理启动任务 1.     代码执行流程1)       TaskTracker的启动的时候会加载所有信息,包括利用RPC获得JobTracker 的RPC变量定义为jobClient;TaskTracker.run()方法会去循环向JobTracke

npucloud的专栏 928

线性代数——(期末突击)行列式(上)-行列式计算、行列式的性质

简单解释一下:4213原本的顺序应为1234,对于‘4’而言,‘2’、‘1’、‘3’都应该排在它的前面,所以此处记逆序数为3;对于‘2’而言,‘1’应该排在它的前面,而‘3’排在它之后 是合理的,所以此处只有一个逆序数;最后看‘1’,其后面的‘3’排在后面显然也是合理的,故而4213的逆序数为4.一般我们使用这个性质来计算四阶行列式,也就是将其变换成三角行列式,再计算对角线的值;以主对角线为分界线的就为正三角,反之则为反三角行列式。若行列式某一行(列)为0,则该行列式=0.将和的那一行分开,其余行。

li13437542099的博客 1万+

Hadoop之YARN及运行流程

YARN是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。 YARN通用资源管理框架组成部分: 1,ResourceManager(RM):由Scheduler(资源调度器)和ApplicationsManager(ASM:应用管理器)2个组件组成。RM和每个NodeManager (NM)构成一个资源估算框架,管...

qianshanding0708的博客 5600

人大金仓V8R3企业版License更新全攻略:从查看到重启一步到位

本文详细解析了人大金仓V8R3企业版License更新的完整运维流程,涵盖从诊断当前授权状态、获取与验证新文件、精准定位旧文件路径,到安全替换文件及服务重启验证的全过程。重点针对更新流程中常见的版本匹配、文件定位、权限与服务重启等关键环节提供了实战解决方案和避坑指南,帮助运维人员高效、平稳地完成授权续期。

redis7keeper的博客 898

【Excel VBA 编程】表格内自动生成进度条

在表格中生成进度条,进度条需要自适应单元格的宽度,根据不同进度区间变换颜色,并且按照进度数据大小显示其长短

wei1019的专栏 1519

大数据架构师分享MapReduce V1:TaskTracker端启动Task流程分析

如果在一个TaskTracker节点上运行的多个Task都属于同一个Job(一个TaskTracker上运行的Task按照Job来分组,每一组Task都属于同一个Job),那么第一次初始化时,还没有建立一个Task到Job的映射关系,也就是说,在TaskTracker端也要维护Job的状态,以及属于该Job的所有Task的状态信息。根据Task的类型,分别加入到对应类型的TaskLauncher的队列中。至此,一个Task通过Child VM的加载已经启动,就可以运行一个Task了,我们后续再详细介绍。

2401_83384536的博客 1103

AHB2eflash 控制器设计笔记

① SRAM② DRAM③ SSD④ SATA⑤ U 盘⑥ 移动硬盘⑦ 机械磁盘eflash。

weixin_46220498的博客 3077

Task执行流程

1、源码走读 (1)当Driver中的SchedulerBackend(Standalone模式为CoarseGrainedSchedulerBackend)给ExecutorBackend(Standalone模式为CoarseGrainedExecutorBackend)发送LaunchTask之后,CoarseGrainedExecutorBackend在收到LaunchTask消息后,E...

fighting 1770

利用Sigrity的SPEED2000进行时域电源噪声分析

SPEED2000进行时域电源噪声分析

ZHENGSA的博客 3620

高通平台Android 无线 UWB 开发全解析:UWB系统设计、天线与校准全流程指南

为使 UWB 系统达到目标性能,在整个开发流程中遵循一套设计最佳实践至关重要。系统架构:需基于飞行时间(ToF)功能的基准方案(POR)定义系统框图,这是整体系统架构的基础。天线布局:天线位置对性能影响极大,需尽可能贴近 UWB 芯片,以减少信号损耗、保持高传输效率。器件选型:需谨慎选择元器件,推荐使用单刀双掷(SPDT)或双刀双掷(DPDT)开关、UWB 带通滤波器射频同轴测试接头,以保障信号传输路径与测试能力。原理图优化:原理图开发阶段,走线损耗优化极为关键。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 171

Hadoop源码分析(1)————MapReduce之整体流程分析

欢迎来到何大鹰的Hadoop理解内容由于Hadoop已经火了有一段时间啦~,所以编译hadoop和部署hadoop的内容在这里我就不多讲了,编译hadoop大家可以看看这篇博客https://blog.youkuaiyun.com/cruise_h/article/details/18709969 至于部署hadoop大家完全可以按照官网上的文档慢慢配置,还可以练习一下英文阅读能力。 运行和编译hadoop

qq_33771258的博客 442

[QMT和ptrade量化交易小白入门]-125、菜场大妈加上四大现金行业指数风控,最大回撤从22%减少了一半

群里面有人建议,在菜场大妈策略的基础上,加入申万的行业指数(银行,钢铁,有色,煤炭)测算其宽度,当这四大行业其中有一个高就会清仓(用来控制回撤)。这背后的逻辑是,在存量资金博弈的市场环境中,资金总量相对固定,当银行、钢铁、有色、煤炭等大市值周期行业因基本面改善(如涨价、政策催化)或避险需求而走强时,会吸引大量资金涌入,导致其他板块(尤其是小市值股票)面临流动性虹吸。经过回测,对比上一个版本发现确实是可以降低一半的回撤,最大回撤从22.3%降到了11.4%,而且有很多时间是空仓等待。

木头大左的博客 241

2万字硬核spark源码精讲手册

spark源码精讲,结合企业级开发和面试实战重点关注内容

5092

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Hadoop技术体系详解与源码剖析

Hadoop通过分布式存储和计算架构,解决了海量数据的存储与处理难题。其设计思想强调分而治之、容错与高扩展性,采用多种设计模式保证系统健壮性。通过与生态系统的集成,Hadoop已成为大数据处理的基石。理解其原理、流程和源码,有助于知其然更知其所以然。口诀速记:名管数映洗合,资节应分布管,副本心跳容错强,生态集成用得广。图文示例如需更深入源码分析与扩展方案,可以参考官方仓库和相关书籍,结合实际场景灵活运用。

IT技术学习与工作笔记分享 1297

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spark任务的执行源码

Spark任务的执行 目录Spark任务的执行一、概述1.1 任务切分和任务调度原理1.2 本地化调度1.3 失败重试与黑名单机制二、阶段的划分三、任务的切分四、任务的调度4.1 提交任务4.2 FIFO和公平调度器4.3 读取任务4.4 FIFO和公平调度器规则4.5 发送给Executor端执行任务五、任务的执行 一、概述 1.1 任务切分和任务调度原理 1.2 本地化调度 任务分配原则:根据每个Task的优先位置,确定Task的Locality(本地化)级别,本地化一共有五种,优先级由高

weixin_42796403的博客 446

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

hadoop各组件工作流程分析

conbineTextInputFormat切片机制。将大量的小文件合并成一个大的Map Task的过程。虚拟存储过程 切片过程。

Saniana的博客 2329

Hadoop MapReduce Task 设计源码分析

本文深入解析了Hadoop MapReduce框架中的核心组件Task及其子类MapTask和ReduceTask的实现机制。Task作为任务执行基类,封装了任务标识、状态管理、序列化等通用功能。MapTask通过环形缓冲区和多轮溢写-归并机制实现高效数据处理,ReduceTask则通过Shuffle阶段拉取数据并执行最终归并排序。文章详细剖析了ShuffleSchedulerImpl的调度算法、失败处理机制以及多层次的容错设计,包括失败计数限制和健康检查机制。这些组件构建了一个高效、健壮的分布式计算框架。

lifallen的博客 1524

Hadoop学习笔记[7]-MapReduce运行源码分析

Hadoop学习笔记[7]-MapReduce运行源码分析   分布式计算框架的过人之处在于可以让我们像写单机程序一样写分布式计算程序,只需要关注业务逻辑即可,剩下的事情,框架会帮我们做,前面文章也说了,虽然MR是个感觉有点“过时”的产品,但是其思想和结构相对简单,很容易理解,且是个划时代的产品,所以我们没理由看不起它   本文将介绍MR运行流程中的核心源码,因为对资源管理这部分不熟,so,跳过yarn???? 1、MR客户端提交源码分析   客户端最重要的工作就是根据需要处理的文件名称,从HDFS获取文件

unlock的博客 578

Spark中Task数量的分析

本文主要说一下Spark中Task相关概念、RDD计算时Task的数量、Spark Streaming计算时Task的数量。 Task作为Spark作业执行的最小单位,Task的数量及运行快慢间接决定了作业运行的快慢。 开始 先说明一下Spark作业的几个核心概念: Job(作业):Spark根据行动操作触发提交作业,以行动操作将我们的代码切分为多个Job。 Stage(调度阶段):每个Jo...

upupfeng的博客 9579
上一篇: Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务
下一篇: 李维--Borland传奇
xiejava
博客等级 码龄19年 26粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值