一、前言
I/O相关的包如下:.apache.hadoop.io.* ,以下介绍一些常用的hdfs的API操作
二、HDFS API
package hadoop.utils;
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.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
/**
* @author : chenhaipeng
* @date : 2015年8月21日 上午1:02:26
*/
public class HDFSUtils {
public static void WriteToHDFS(String file, String words) throws IOException, URISyntaxException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(file), conf);
Path path = new Path(file);
FSDataOutputStream out = null;
out = fs.create(path); // 创建文件
// 两个方法都用于文件写入,好像一般多使用后者
// out.writeBytes(words);
out.write(words.getBytes("UTF-8"));
out.close();
// 如果是要从输入流中写入,或是从一个文件写到另一个文件(此时用输入流打开已有内容的文件)
// 可以使用如下IOUtils.copyBytes方法。
// FSDataInputStream in = fs.open(new Path(args[0]));
// IOUtils.copyBytes(in, out, 4096, true) //4096为一次复制块大小,true表示复制完成后关闭流
}
public static void ReadFromHDFS(S