Java中怎么对HDFS进行操作

这篇文章给大家介绍Java中怎么对HDFS进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

以下是代码:

package hdfs;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
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;

public class App2 {
	/**
	 * 
	 * 使用 FileSystem
	 * 
	 * eclipse 创建方法快捷键:alt+shift+M
	 * eclipse 创建局部变量快捷键 alt+shift+L
	 * 
	 * */
	public static final String HDFS_PATH = "hdfs://192.168.9.204:9000";
	private static final String DIR_PATH = "/user/yinkaipeng";
	private static final String FILE_PATH = "/test";

	public static void main(String[] args) throws Exception, URISyntaxException {
		FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());

		// 创建文件夹

		CreatePackage(fileSystem);

		// 上传文件

		//UploadFile(fileSystem);

		// 下载文件
	//	Download(fileSystem);
		//删除文件
		//deleteFile(fileSystem);
		
	}

	private static void deleteFile(FileSystem fileSystem) throws IOException {
		fileSystem.delete(new Path(FILE_PATH), true);
		System.out .println("OK!");
	}

	private static void UploadFile(FileSystem fileSystem) throws IOException,
			FileNotFoundException {
		final FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));
		final FileInputStream in = new FileInputStream("c:/log.txt");
		IOUtils.copyBytes(in, out, 1024, true);
	}

	private static void CreatePackage(FileSystem fileSystem) throws IOException {
		fileSystem.mkdirs(new Path(DIR_PATH));
	}

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

}

关于Java中怎么对HDFS进行操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。