千家信息网

怎么实现hadoop中RPC通信文件上传原理分析

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,怎么实现hadoop中RPC通信文件上传原理分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。//APP2中调用的代码public st
千家信息网最后更新 2025年02月08日怎么实现hadoop中RPC通信文件上传原理分析

怎么实现hadoop中RPC通信文件上传原理分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

//APP2中调用的代码public static final String HDFS_PATH = "hdfs://hadoop:9000/hello";        public static final String DIR_PATH = "/d1000";        public static final String FILE_PATH = "/d1000/f10000";        public static void main(String[] args) throws Exception {                FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),                                new Configuration());                // //创建文件                // fileSystem.mkdirs(new Path(DIR_PATH));                // //上传文件                // FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));                // FileInputStream in = new FileInputStream("c:/hello.txt");                // IOUtils.copyBytes(in, out, 1024,true);                // //下载数据                // FSDataInputStream in1 = fileSystem.open(new Path(FILE_PATH));                // IOUtils.copyBytes(in1, System.out, 1024,true);                // 删除文件夹                deleteFile(fileSystem);        }        private static void deleteFile(FileSystem fileSystem) throws IOException {                fileSystem.delete(new Path(FILE_PATH), true);                        }

注:RPC(remote procedure call)

不同java进程间的对象方法的调用。一方称作服务端(server),一方称作客户端(client)。

server端提供对象,供客户端调用的,被调用的对象的方法的执行发生在server端。

RPC是hadoop框架运行的基础。

上图为RPC通信调用的一系列方法最终达到把文件写入到linux文件系统中的过程,但是由于hadoop中hdfs分布式文件系统的API封装的特别好,让调用者感觉不到这个复杂的过程,对用户或者程序而言实际是通过网络来访问文件的动作,但对用户看来就像访问本地磁盘一样,充分体现了通透性....

对于HDFS的操作在应用中只需掌握FileSystem,而不需要关注数据是存放在DataNode的哪个块中(因为这个工作时交给NameNode的)。

注意:虽然客户端上传数据的时候是通过DataStreamer向NameNode申请block块和blockid,但是数据的传输行为并不是通过NameNode转的,而是与DataNode直接连接!

看完上述内容,你们掌握怎么实现hadoop中RPC通信文件上传原理分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0