Hadoop RPC框架原理 RPC是远程过程调用(Remote Procedure Call)的缩写形式。RPC主要目的是能让应用层可以像调用本地方法一样调用远程方法。既然是远程调用,肯定是采用了c/s架构。我们可以先分析一下client和server分别要完成什么事情。 Client:当应用层调用方法时,肯定要先建立连接,然后把方法和参数都通过…
Datanode本质上也是TCPServer,一般的TCPServer接到客户端请求以后会分配一个线程处理,对于Datanode而言,这个线程可以叫做Op处理线程。每个OP线程会多次和客户端交互,中间涉及多种packet。 Op线程 写在前面 写在前面,关于proto writeDelimitedTo方法 在整个处理流程中,会非常频…
客户端读 hdfs客户端读会先调用open方法,open会调用先getBlockLocations来获取块信息,然后通过openinternal生成DFSInputStream对象,通过DFSInputStream读数据。 getLocatedBlocks(String src, long start, long length) 客…
Wordcount的例子基本接触过hadoop都会跑过,本篇的主要分析都以Wordcount为例。我们先把etc/hadoop/下配置文件作为Wordcount的输入hadoop fs -put etc/hadoop/* /input然后打开调试运行以下命令hadoophadoop-mapreduce-examples-xxx.jar wordco…