TaskTracker节点向JobTracker汇报当前节点的运行时信息时候,是将运行状态信息同心跳报告一起发送给JobTracker的,主要包括TaskTracker的基本信息.节点资源使用信息.各任务状态等.所以信息被序列化为TaskTrackerStatus实例对象.每次发送心跳报告的时候,会重新构造一个Status对象,并重置这些信息,而且需要主要的是每次发送的status对象的大小是不一定的,因为很多信息的发送是有时间间隔的.这些操作主要位于方法transmitHeartBeat的上半…
在Hadoop1.x版本中,MapReduce采用master/salve架构,TaskTracker就是这个架构中的slave部分.TaskTracker以服务组件的形式存在,负责任务的执行和任务状态的汇报.TaskTracker是hadoop集群中运行在各个节点上的服务.扮演着“通信交通”的角色,是JobTracker和Task之间的“沟通桥梁”,一方面,TaskTracker发送心跳信息到JobTracker,并接收和执行返回的各种任务命令,比如运行任务(launchTaskAction)…
在TaskTracker中对象healthStatus保存了当前节点的健康状况,对应的类是org.apache.hadoop.mapred.TaskTrackerStatus.TaskTrackerHealthStatus.定义如下: static class TaskTrackerHealthStatus implements Writable { private boolean isNodeHealthy; // 节点是否健康 private String healthReport; //…
Hadoop RPC源码分析 上一篇文章http://www.cnblogs.com/dycg/p/rpc.html 讲了Hadoop RPC的使用方法,这一次我们从demo中一层层进行分析. RPC说白了,就3个核心,交互协议.服务端.客户端. 在Hadoop RPC(hadoop-common-2.4.jar)中也是这样 交互协议 org.apache.hadoop.ipc.VersionedProtocol ,所有协议的父类 其实就2个方法,版本与签名.不同版本与签名的协议,就算同一个类名…
前面两篇博客[Netty源码分析]Netty服务端bind端口过程和[Netty源码分析]客户端connect服务端过程中我们分别介绍了服务端绑定端口和客户端连接到服务端的过程,接下来我们分析一下数据发送的过程. future.channel().writeAndFlush("Hello Netty Server ,I am a common client"); 调用AbstractChannel的writeAndFlush函数 @Override public ChannelFutu…
1.概述 Producer 发送消息.主要是同步发送消息源码,涉及到 异步/Oneway发送消息,事务消息会跳过. Broker 接收消息.(存储消息在<RocketMQ 源码分析 —— Message 存储>解析) 2.Producer 发送消息 DefaultMQProducer#send(Message) 1: @Override 2: public SendResult send(Message msg) throws MQClientException, RemotingExcept…
from:http://blog.csdn.net/lzm1340458776/article/details/42707047 InputFormat主要用于描述输入数据的格式(我们只分析新API,即org.apache.hadoop.mapreduce.lib.input.InputFormat),提供以下两个功能: (1).数据切分:按照某个策略将输入数据切分成若干个split,以便确定MapTask个数以及对应的split. (2).为Mapper提供输入数据:读取给定的split的数据…
TaskScheduler是MapReduce中的任务调度器.在MapReduce中,JobTracker接收JobClient提交的Job,将它们按InputFormat的划分以及其他相关配置,生成若干个Map和Reduce任务. 然后,当一个TaskTracker通过心跳告知JobTracker自己还有空闲的任务Slot时,JobTracker就会向其分派任务.具体应该分派一些什么样的任务给这台TaskTracker,这就是TaskScheduler所需要考虑的事情. TaskSchedul…
简述:      MPTCP在发送数据方面和TCP的区别是可以从多条路径中选择一条 路径来发送数据.MPTCP在接收数据方面与TCP的区别是子路径对无序包 进行重排后,MPTCP的mpcb需要多所有子路径的包进行排序.查看图1可知. +-------------------------------+ | Application | +---------------+ +-------------------------------+ | Application | | MPTCP | +----…
1.概述 我们已经能够搭建一个高可用的Hadoop平台了,也熟悉并掌握了一个项目在Hadoop平台下的开发流程,基于Hadoop的一些套件我们也能够使用,并且能利用这些套件进行一些任务的开发.在Hadoop的应用级别上,我们接着往后面去研究学习,那就是Hadoop的源码了,作为Hadoop开发人员,我们得去学习和研究Hadoop得实现原理,底层框架的设计,编码的实现过程等等,下面就开始我们今天的Hadoop源码分析之旅. 2.准备 在分析源码之前,我们需要准备好分析源码的环境,以及如何去分析(分…