文档章节

hadoop中RPC通信文件上传原理

simpler
 simpler
发布于 2014/04/15 02:36
字数 410
阅读 3K
收藏 6
//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通信

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

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

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




© 著作权归作者所有

simpler
粉丝 25
博文 44
码字总数 40338
作品 0
成都
程序员
私信 提问
原hadoop中RPC通信文件上传原理

01 //APP2中调用的代码 02 public static final String HDFSPATH = "hdfs://hadoop:9000/hello"; 03 public static final String DIRPATH = "/d1000"; 04 public static final String FILEP......

蓝狐乐队
2014/04/29
91
0
hdfs详解一

hdfs详解一 1、hdfs的三个进程: NameNode:接受客户端请求、管理hdfs、维护文件元信息和操作日志 DataNode:存储数据块和数据块校验和、通过水平复制使文件冗余度满足要求 Secondary NameNode...

pengzonglu7292
2017/12/19
0
0
Hadoop-RPC底层实现与解析

版权声明:博文千万条,版权第一条。转载不规范,博主两行泪 https://blog.csdn.net/qq_39521554/article/details/89431128 Hadoop-RPC底层 RPC 是远程过程调用(Remote Procedure Call),即远...

刺客五六柒
2019/04/21
0
0
2014-11-09---Hadoop的基础学习(二)----HDFS的特性和JavaAPI源码分析

1.HDFS概览 HDFS 是一个 Apache Software Foundation 项目,是 Apache Hadoop 项目的一个子项目。Hadoop 非常适于存储大型数据(比如 terabytes和petabytes),并使用 HDFS 作为其存储系统。...

查封炉台
2014/11/10
1.2K
6
Hadoop实战-中高级部分 之 Hadoop RPC

Hadoop RestFul Hadoop HDFS原理1 Hadoop HDFS原理2 Hadoop作业调优参数调整及原理 Hadoop HA Hadoop MapReduce高级编程 Hadoop IO Hadoop MapReduce工作原理 Hadoop 管理 Hadoop 集群安装 ...

2k10
2015/03/23
69
0

没有更多内容

加载失败,请刷新页面

加载更多

node.js中__dirname和./有什么区别?

在Node.js中编程并引用位于与当前目录相关的文件时,是否有任何理由使用__dirname变量而不仅仅是常规./ ? 到目前为止,我一直在使用./并且刚刚发现了__dirname的存在,并且基本上想知道将....

javail
15分钟前
17
0
Hive安装

下载上传apache-hive-2.1.1-bin.tar.gz文件并解压 tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /export/servers 配置环境变量 vi /etc/profileexport HIVE_HOME=/export/servers/apache......

长臂猿猴
21分钟前
11
0
OS X:相当于Linux的wget

如何从库存OS X系统上的Un * x shell脚本执行HTTP GET? (安装第三方软件不是一种选择,因为这必须在我无法控制的许多不同系统上运行)。 例如,如果我在本地启动Mercurial服务器执行hg服务...

技术盛宴
31分钟前
25
0
Fedora 31 - 荣耀魔法本问题记录

最近荣耀魔法本装了Fedora31系统,没有像Deepin 15.11那样出现亮度不能调节和网卡不能用的问题。但是也有不少小问题: 触摸板有时启动后失效,需要重启。 触摸板的右键失效。 待机后进入桌面...

wffger
34分钟前
14
0
ElasticSearch深入:内部机制浅析(三)@

前言 上篇从分布式的角度阐述了 ES 的分布式设计和思想,这一篇打算与 Lucene 结合起来,摸透一些 ES 的常遇到的概念,我们可以将了解到的这些东西应用到优化实践中去。 一、Shard Shard 实际...

HLee
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部