知识点
相关文章
更多最近更新
更多Hadoop中RPC机制
2019-03-28 13:59|来源: 网络
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。Hadoop底层的交互都是通过rpc进行的。例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的。下面是rpc交互过程图:
1.客服端调用的总过程:
Hadoop的RPC客户端代码其实就一个类:org.apache.hadoop.ipc.Client。这个类使用Java的动态代理技术,生成服务器的业务接口的代理,通过socket将调用的业务方法和参数传送到服务器端,并且等待服务器端的响应。
客户端调用的序列图如下:
例如:TaskTracker请求与JobTracker的通信:
TaskTracker通过:
this.jobClient = (InterTrackerProtocol)
RPC.waitForProxy(InterTrackerProtocol.class, InterTrackerProtocol.versionID,
jobTrackAddr, this.fConf);
中的InterTrackerProtocol 去和JobTracker通信。
在RPC中通过:
VersionedProtocol proxy =
(VersionedProtocol) Proxy.newProxyInstance(
protocol.getClassLoader(), new Class[] { protocol },
new Invoker(addr, ticket, conf, factory));
产生一个动态代理完成JobTracker和TaskTracker之间的心跳交流。
相关问答
更多-
如何实现hadoop 的安全机制[2024-02-19]
为了增强Hadoop的安全机制, 从2009年起, Apache专门抽出一个团队,为Hadoop增加安全认证和授权机制,至今为止,已经可用。 Apache Hadoop 1.0.0版本和Cloudera CDH3之后的版本添加了安全机制,如果你将Hadoop升级到这两个版本,可能会导致Hadoop的一些应用不可用。 Hadoop提供了两种安全机制:Simple和Kerberos。Simple机制(默认情况,Hadoop采用该机制)采用了SAAS协议。 也就是说,用户提交作业时,你说你是XXX(在Jo ... -
hadoop里有哪些机制[2021-08-07]
Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。然后Hadoop还包括的项目: mapreduce分布式处理模型;HDFS分布式文件系统;pig数据流语言和运行环境;hive分布式按列存储的数据仓库;HBase,ZooKeeper,Sqoop -
关于Hadoop的运行机制[2024-01-12]
map分类,reduce整合,通过相同的key将需要的信心通过map整合到同一个reduce中,在reduce中实现算法 -
这是我见过的三个处理RPC的库。 我对他们中的任何一个都没有丰富的经验,所以请大家注意我的评论。 卡斯特拉 。 最近更新,并有一个很好的自述。 抓取 。 看起来简单,甜美,可能就足够了。 Shoreleave 。 我成功地使用了这个。 它工作正常,但几年后没有更新。 Here are three libraries I've seen that handle RPC. I don't have significant experience with any of them, so take my comme ...
-
要理解RPC忘记POST和GET,它的工作原理是不同的(从编程的角度来看,它在内部使用它,但除非你想做一些特殊的事情,否则你没有看到或不需要理解它)。 RPC的一个很好的起点是GWT文档: http : //code.google.com/webtoolkit/tutorials/1.6/RPC.html 给你一个总结。 在使用RPC时, myServiceImpl需要实现名为myService的接口的方法,除了扩展RemoveServiceServlet 。 这些方法以您想要发送给服务器的数据作为参数。 ...
-
http://www.rabbitmq.com/api-guide.html#rpc 如果没有,您可以在此处下载包含示例代码的Java API源代码。 http://www.rabbitmq.com/releases/rabbitmq-java-client/v2.0.0/rabbitmq-java-client-2.0.0.zip那里有一个示例文件夹 - 下面的代码来自HelloServer.java和HelloClient.java 服务器 import com.rabbitmq.client.AMQP ...
-
在GWT中需要RPC吗?(Need of RPC in GWT?)[2022-09-11]
好想象一下,您想要调用在服务器端实现的操作,例如登录用户。 服务器上有一个注册用户的数据库。 clinet(浏览器中的javascript代码)必须将用户的名称和密码发送到服务器。 然后,服务器(Java代码)联系数据库并对用户进行身份验证,并将true或false返回给客户端。 通过这种方式,您可以从客户端远程调用服务器上的操作(登录过程),并获得响应。 因此名称为RPC。 这里的关键是了解客户端和服务器端 。 在客户端你有javascript,但使用java脚本你无法访问数据库。 此外,您没有在每个客户 ... -
RPC有超时机制吗?(Does RPC have a timeout mechanism?)[2022-07-21]
您可以使用通道来实现超时模式: import "time" c := make(chan error, 1) go func() { c <- client.Call("Service", args, &result) } () select { case err := <-c: // use err and result case <-time.After(timeoutNanoseconds): // call timed out } select将阻塞,直到timeoutN ... -
hadoop 0.20不支持这个,请阅读本期https://issues.apache.org/jira/browse/HADOOP-6889 hadoop 0.20 doesn't support this, please read this issue https://issues.apache.org/jira/browse/HADOOP-6889
-
Protobuf RPC在Hadoop 2.2.0单节点服务器上不可用?(Protobuf RPC not available on Hadoop 2.2.0 single node server?)[2022-06-01]
好的,找到原因,我连接到纱线资源管理器的错误端口。 正确的配置是:yarn.resourcemanager.address = localhost:8032 Ok, found the reason, I connected to the wrong port for the yarn resourcemanager. The correct configuration is: yarn.resourcemanager.address=localhost:8032