码迷,mamicode.com
首页 > 编程语言 > 详细

【hadoop】使用javaAPI对hdfs进行文件操作

时间:2015-06-13 06:22:00      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

前提:1、搭建好hadoop伪分布式环境;2、安装好eclipse;

注:修改 /etc/hosts 添加 “本机IP hadoop01” ,

      那么代码中创建hdfs文件系统的时候的URI hdfs://hadoop01:9000 相当于  hdfs://hadoop服务器ip(例如:192.168.1.1XX):9000

 

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Before;
import org.junit.Test;

public class demo1 {

	private FileSystem fileSystem = null;
	private String location = "";

	@Before
	public void init() throws URISyntaxException, IOException {
		// 初始化文件系统,连接到hdfs的namenode,new Configuration 代表默认配置
		fileSystem = FileSystem.get(new URI("hdfs://hadoop01:9000"),
				new Configuration());
		// 下载文件的路径(文件位于电脑的绝对路径)
		location = "/data/downloads";
	}

	@Test
	public void testUpload() throws IOException {
		// Path “/” 代表 hadoop hdfs 的根路径
		String fileName = "A.tar.gz";
		InputStream in = new FileInputStream(location + fileName);
		OutputStream out = fileSystem.create(new Path("/hadoop.tar.gz"));
		IOUtils.copyBytes(in, out, 4096, true);
	}

	@Test
	public void testDownload() throws URISyntaxException, IOException {
		InputStream in = fileSystem.open(new Path("/hadoop.tar.gz"));
		String fileName = "A.tar.gz";
		OutputStream out = new FileOutputStream(location + fileName);
		IOUtils.copyBytes(in, out, 4096, true);
	}

	@Test
	public void testDel() throws IllegalArgumentException, IOException {
		// true 递归删除,用于删除文件夹
		boolean flag = fileSystem.delete(new Path("/word.text"), false);
		System.out.println(flag);
	}

}

【hadoop】使用javaAPI对hdfs进行文件操作

标签:

原文地址:http://www.cnblogs.com/lixiongqing/p/4572916.html

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