hadoop学习笔记-java操作hdfs

使用Hadoop的java api 针对HDFS进行文件上传、创建、重命名、删除操作:

package hadoop.hdfs;

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

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

/**
 * 使用FileSystem类
 * @author yehao
 *
 */
public class App2 {

	private final static String HDFS_PATH = "hdfs://hadoop:9000/hello";
	private final static String DIR_PATH="/d100";
	private final static String FILE_PATH = "/d100/f100";
	/**
	 * 
	 * @param args
	 * @throws URISyntaxException 
	 * @throws IOException 
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH), new Configuration());
		
		//创建文件夹
		makeDir(fileSystem);
		//上传文件
		uploadFile(fileSystem);
		//下载文件
		downFile(fileSystem);
		//删除文件夹
		deleteFile(fileSystem);
	}

	private static void deleteFile(final FileSystem fileSystem)
			throws IOException {
		fileSystem.delete(new Path(DIR_PATH), true);
	}

	private static void downFile(final FileSystem fileSystem)
			throws IOException {
		final FSDataInputStream in = fileSystem.open(new Path(FILE_PATH));
		IOUtils.copyBytes(in, System.out, 1024, true);
	}

	private static void makeDir(final FileSystem fileSystem) throws IOException {
		fileSystem.mkdirs(new Path(DIR_PATH));
	}
	
	private static void uploadFile(FileSystem fileSystem) throws Exception{
		
		final FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));
		final InputStream in = new FileInputStream("E:/test");
		IOUtils.copyBytes(in, out, 1024, true);
	}

}

猜你喜欢

转载自yehao0716.iteye.com/blog/2022986