hadoop集群上传下载文件

在过年前夕我们小组就开始研究云计算了,之前都是在搭建云平台,配置hadoop集群环境,出现各种问题,各种不解,最终还是成功搭建了由10台机器组成的hadoop集群环境!由于写这篇技术博客的时候没有网络,暂时就不写搭建环境的步骤了,下面就在hadoop集群上运行的程序进行分析吧!

我们知道云计算应用中就有文件的上传和下载,我们提交任务到云端,让云端帮我们完成任务,下面就分析一下代码吧!

要在Hadoop集群进行操作,就应该用hadoop自己的一套api,只要我们和云端的hadoop集群连接上并用这套api编程,就可以享受云服务了!

文件的上传和下载最主要的就是org.apache.hadoop.fs FileSystem抽象类和org.apache.hadoop.conf Configuration类,再看看FileSystem的源代码:

public abstract class FileSystem extends Configured implements Closeable {

 

Hadoop集群上的文件系统也是与Configuration有关的,我们将这个类写进代码中,云端根据响应的api找到配置执行任务。

上传文件的代码:

//写入数据:从本机到云端(存储)
private static void uploadToHdfs() throws FileNotFoundException,IOException{
	//我的文件地址
	String localSrc = "H://Reading/Google_三大论文中文版.pdf";
	//存放在云端的目的地址
	String dest = "hdfs://192.168.1.11:9000/usr/Google_三大论文中文版.pdf";
	InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
	//得到配置对象
	Configuration conf = new Configuration();
	//文件系统
	FileSystem fs = FileSystem.get(URI.create(dest), conf);
	//输出流
	OutputStream out = fs.create(new Path(dest), new Progressable() {
	@Override
	public void progress() {
		System.out.println("上传完一个设定缓存区大小容量的文件!");
		}
	});
	//连接两个流,形成通道,使输入流向输出流传输数据
	IOUtils.copyBytes(in, out, 4096,true);
	}
 

下载文件的代码:

//读入数据:从云端到本机(提取数据)
private static void readFromHdfs()throws FileNotFoundException,IOException{
	//云端地址
	String dest = "hdfs://192.168.1.11:9000/usr/Google_三大论文中文版.pdf";
	//我的目录地址
	String mySrc = "H://Google_三大论文中文版.pdf";
	//得到配置
	Configuration conf = new Configuration();
	//实例化文件系统
	FileSystem fs = FileSystem.get(URI.create(dest), conf);
	//读出流
	FSDataInputStream hdfsInStream = fs.open(new Path(dest));
	//写入流
	OutputStream out = new FileOutputStream(mySrc);
	//将InputStrteam 中的内容通过IOUtils的copyBytes方法复制到out中
	IOUtils.copyBytes(hdfsInStream, out, 4096,true);
		}

 

这是一个小小的开端,今年要开始认真研究了!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值