以JobClient向JobTracker提交作业为例:
JobClient远程调用JobTracker的submitJob方法;
//JobClient.java
public RunningJob submitJob(JobConf job) throws FileNotFoundException, InvalidJobConfException, IOException {
//...
// Now, actually submit the job (using the submit name)
//
JobStatus status = jobSubmitClient.submitJob(jobId);
//...
}
其实jobSubmitClient是通过java.lang.reflect.Proxy动态代理产生的JobSubmissionProtocol接口的实例实现的
关于Proxy参见利用JAVA的动态属性之反射原理实现一个简单AOP容器 - AOP的实现原理分析
Java动态代理功能
首先,我们简单介绍一下Java动态代理功能。JAVA的动态代理功能主要通过java.lang.reflect.Proxy类与java.lang.reflect.InvocationHandler接口完成,这里正是通过它们实现一个简单的AOP容器的。其实,像JBoss AOP等其他动态AOP框架也都是通过Proxy和InvocationHandler来实现的。
这个实例的submitJob方法会调用RPC.Invoker的invoke方法,然后RPC的client会调用call方法要远程调用的方法名和参数发送到RPC服务器。
在RPC服务器端,绑定了JobTracker
//JobTracker.java
JobTracker(JobConf conf) throws IOException, InterruptedException {
//...........
this.interTrackerServer = RPC.getServer(this, addr.getHostName(), addr.getPort(), handlerCount, false, conf);
this.interTrackerServer.start();
//..............
}
Server内置的Listener(线程)处理Connection队列,调用Connetion处理数据生成Call并加入callQueue队列,Handler(线程)处理Call队列,并调用RPC.Server的call方法返回结果
分享到:
相关推荐
Hadoop的RPC机制是其分布式系统中的重要组成部分,它简化了分布式环境下的通信,提高了效率。理解并掌握RPC的工作原理对于优化Hadoop集群性能和解决故障至关重要。通过源码阅读,我们可以更深入地理解其内部机制,...
Hadoop RPC 是 Hadoop 项目中的一个重要组件,它提供了分布式系统中的通信和数据交换机制。通过对 Hadoop RPC 的详细分析,我们可以更好地理解 Hadoop 项目的工作原理,并且可以更好地应用 Hadoop RPC 来构建高性能...
Hadoop的RPC机制中,服务器通过监视队列(如calllist和responselist)来实现高效的并发处理和响应。这种方法避免了handler线程因等待客户端确认而阻塞,提升了系统整体的吞吐量。 总结来说,Hadoop的RPC机制是一个...
Hadoop RPC是Hadoop框架中用于进程间通信的一种机制,它允许一个进程调用另一个远程进程中定义的方法,仿佛这个方法是在本地执行一样。这种透明性使得开发者可以专注于业务逻辑,而无需关心底层通信细节。 ### 工作...
在IT行业中,分布式计算系统的重要性日益凸显,而Hadoop作为其中的佼佼者,其核心组件之一就是远程过程调用(RPC,Remote Procedure Call)。RPC允许一个程序在某个网络中的计算机上执行另一个计算机上的程序,而...
接收Call调用负责接收来自RPCClient的调用请求,编码成Call对象后放入到Call队列中。这一过程由Listener线程完成。具体步骤:处理Call调用负责处理Call队列中的每个调用请求,由Handler线程完成:交互过程如下图所示...
Hadoop作为一个开源的大数据处理框架,其RPC机制是实现各个组件如NameNode、DataNode、TaskTracker等之间通信的核心。以下是对这个主题的详细讲解: 1. **RPC基础概念**: - RPC是一种进程间通信(IPC)方式,它...
本文将详细介绍如何使用Hadoop的RPC机制创建一个简单的协议接口、通信服务端和通信客户端程序。这不仅有助于理解分布式系统中的RPC协议,还能深入了解客户机与服务器之间的通信机制。 #### 二、创建RPC通信程序 ##...
这些天一直奔波于长沙和武汉之间,忙着腾讯的笔试、面试,以至于对hadoopRPC(RemoteProcedureCallProtocol,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。...
Hadoop的RPC框架就是基于这个理念构建的,它实现了客户端与服务器端之间的高效、安全的通信机制。 要使用Hadoop的RPC框架,你需要完成以下步骤: 1. **定义协议**:创建一个接口,声明客户端和服务器端需要交互的...
本文将详细介绍Hadoop中RPC机制的工作原理,特别是IPC(Inter-Process Communication)层面上的具体实现细节,帮助读者深入理解Hadoop的底层通信机制。 #### 二、IPC/RPCServer工作流程 Hadoop IPC/RPCServer主要...
RPC(Remote Procedure Call Protocol,远程过程调用协议)是一种通过网络请求服务的方式,它允许程序调用另一个地址空间中的函数或方法,就像调用本地进程中的函数或方法一样简单。RPC框架主要解决分布式系统中不同...
在Java中模拟Hadoop的RPC通讯,主要是为了理解其连接和心跳机制,这是保证Hadoop集群稳定运行的关键部分。 RPC的核心思想是透明性,即客户端可以像调用本地方法一样调用远程服务,由RPC框架负责数据的序列化、网络...
标题中的“Hadoop序列化机制”是指Hadoop生态系统中用于数据传输和存储的数据表示方式,它是Hadoop MapReduce和Hadoop Distributed File System (HDFS)等组件之间交换数据的关键技术。序列化是将对象转化为可存储或...
Hadoop中的RPC机制是基于Java的IPC(Inter-Process Communication)实现的,它在设计时考虑了性能、效率和可控制性,因此与RMI(Remote Method Invocation)等其他RPC方案有所不同。 1. **RPC原理**: Hadoop的RPC...
其中,Hadoop 的远程过程调用(RPC)机制是其核心组件之一,用于实现不同节点之间的高效通信。本文将详细介绍 Hadoop RPC 的基本概念、工作原理以及其实现细节。 #### 二、Hadoop RPC 基本介绍 ##### 2.1 RPC 概念...
06-hadoop中的RPC框架实现机制.avi 07-hadoop中的RPC应用实例demo.avi 08-hdfs下载数据源码跟踪铺 垫.avi 09-hdfs下载数据源码分析-getFileSystem.avi 10-hdfs下载数据源码分析-getFileSystem2.avi 第三天 ...