学习到 <<Hadoop in Action>> chapter 3.1时,使用hdfs java api编写FileMerge时发现报个错误,开始时觉得有点莫名其妙,后来查看api才只有原来是这样。
需求: 准备把local file system 中的某个文件夹下所有文件,合并到hdfs文件系统中一个文件里。
程序如下:
package com.test.study;
import java.io.IOException;
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.Path;
public class FileMerge {
public static void main(String[] args) {
Path inputDir = new Path(args[0]);
Path outputFile = new Path(args[1]);
try {
mergeFile(inputDir, outputFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void mergeFile(Path inputDir, Path outputFile) throws IOException{
Configuration conf = new Co