Hadoop内核分析之Hadoop文件存储细节

          众所周知,我们需要hadoop来分布式存储我们的数据,提高并发和吞吐量,造就了Mapreduce框架的易用性。那对于整个这个过程来说,最开始需要我们认识到的是文件是如何存储在hadoop系统上的。

          Hadoop可以分为三个部分,Client端,namenode端和datanode端。他们之间的协作做成了这个庞大的分布式文件系统。文件从客户端这个接口,进入系统,由客户端和namenode通信,使用反射机制,告知Client文件所需要存储的datanode列表,然后就可以进行传输了,当然,我们在这里屏蔽了所有hadoop错误处理的过程,即便这是hadoop的最大的优势之一。

          大体的过程知道了,那么下面我们可以深入源码,来看看具体的实现。

          首先在Client端,假设你写了一个mapreduce程序就是用来存储一个文件的,代码如下:

	 	String localSrc = "/root/Desktop/examp.c";
		String dst = "/fangpei/examp.c";
		InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
		Configuration conf = new Configuration();
		URI uri = URI.create(dst);
		FileSystem fs = FileSystem.get(uri, conf);
		OutputStream out = fs.create
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值