您的位置:网站首页 > 源码环境 > 正文

Hadoop基础之RPC机制以及HDFS源码分析!源码环境

类别:源码环境 日期:2014-12-5 13:53:31 人气: 来源:
枭中雄柳残阳,风羽传奇,吴启华石洋子离婚,97ai蜜桃图片区,邪魅毒医御七夫,iphone定时开机,冷皇的废后有声小说,向火乞儿,丨23网址之家,xiao77论坛最新,kxsqw.com,sdmt-053,功夫英雄什么职业好,阿瓦隆的雾,分离型脑起搏器,伶仃谣歌词,迷羊蔷薇王子,搞定岳父大人qvod,橘梨纱star-467,四叶草赤沙印记粤语,诛仙月宫祝福,前座后座,洪俊扬mp3,虐阴小说,异界炮狂,花都九妃,守卫剑阁1.16神器版,苹果4s6.0.1完美越,灵魂触发者金手指,云南民族大学考研论坛,黄昏操,江祖平洪小玲,heliocare,澍青医学院分数线

  RPC远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

  RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

  说明:RPC.getProxy(),该方法有四个参数,第一个参数是被调用的接口类,第二个是客户端版本号,第三个是服务端地址。返回的代理对象,就是服务端对象的代理,内部就是使用ng.Proxy 实现的。

  说明:RPC.getServer 方法,该方法有四个参数,第一个参数是被调用的 java对象,第二个参数是服务器的地址,第三个参数是服务器的端口。获得服务器对象后,启动服务器。这样,服务器就在指定端口客户端的请求。

  这个接口是供客户端调用的。这里的客户端不是指的自己写的代码,而是hadoop 的一个类叫做 DFSClient。在 DFSClient 中会调用 ClientProtocal 中的方法, 完成一些操作。

  在上图中,注意第 185 行的返回值 FSDataOutputStream。这个返回值对象调用了自己的构造方法, 构造方法的第一个参数是 dfs.create()方法。关注一下这里的 dfs 对象是谁,create 方法做了什么事情。现在进入这个方法的实现,如下图所示。

  在上图中,可 以 看 到,这 个 类 是 DFSClient 的 内 部 类 。 在 类 内 部 通 过 调用namenode.create()方法创建了一个输出流。再看一下 namenode 对象是什么类型,如下图所示:

  继续在 FileSystem 类分析,读数据使用的是 open()方法,可以看到源码,如下图所示。

  在上图中,返回的是 DFSClient 类中 DFSDataInputStream 类,显而易见,这是一个内部类。这个内部类的构造函数,有两个形参,第一个参数是 dfs.open()创建的对象。看一下方法的源码,如下图所示。

  在上图中,这个构造方法中最重要的语句是第 1834 行,打开信息,从第 1840 行开始是 openInfo()的源代码,截图显示不全。注意第 1841 行,是获取数据块的信息的。查看这一行的源代码,如下图所示。

  从上图中可以看到,获取数据块信息的方法也是通过调用 namenode 取得的。这里的 namenode 属性还是位于 DFSClient 中的。通过前面的分析,已经知道,在DFSClient类中的 namenode 属性是 ClientProtocal。

关键词:源码环境
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: