码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop学习2

时间:2016-10-05 10:54:29      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

编写Java程序实现以下函数:

1.向HDFS中上传文件

2.从HDFS下载文件到本地

3.显示HDFS文件目录

4.移动文件

5.新建文件夹

6.移除文件夹

编写Java程序实现客户端和服务器端的socket信息交互以及函数调用

实现机制RPC

主要步骤如下:

1.将本地socket以及接口类封装为一个proxy,生成动态本地代理实例。

2.该实例调用相对应的函数并且传入相应的参数。

3.本地socket得到动态代理调用的函数以及传入的参数。

4.使用文件传输协议实现本地socket与远程服务器的socket进行连接

5.服务器端socket得到调用的函数以及传入的参数,动态生成服务器端的代理实例。

6.该服务器端实例调用服务器端的函数,并且传入得到的参数。

7.函数调用结果返回给服务器端socket。

8.服务器端socket将返回结果传递给本地socket。

9.本地socket将返回结果传递给本地动态代理proxy。

实现了controller和implement的分离

利用RPC机制可以实现信息的有效传递。

DataNode需要定时向NameNode传递自身保存的blocks信息,以便NameNode进行blocks的维护,保证数据的可靠性。

因此Hadoop实现了自身的消息传递机制也就是上面的RPC。

需要注意的地方:

jar包的导入以及版本的控制。

本地以及服务器端的函数都要实现一样的接口类,但是为了防止调用时版本的不对应,所以在Build实例的时候需要将版本号也就是versionID声明清楚,这样调用的时候可以通过版本号的不同将函数进行区别开。

远程调用的底层实现机制:

实现机制RPC

技术分享

实现机制RPC:

技术分享

查看FileSystem fs = FileSystem.get(new Configuration());

一步一步查看fs的生成过程!

技术分享

加入断点后,逐步进行查看!

技术分享

Hadoop学习2

标签:

原文地址:http://www.cnblogs.com/zpfbuaa/p/5931849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!