1. Hadoop 编程读写HDFS:
Hadoop文件API起点:FileSystem.
通过调用factory方法FileSystem.get(Configuration conf)来的到FileSystem实例.
具体写法:
Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);
得到一个专用于本地文件系统的FileSystem对象,可以用factory方法FileSystem.getLocal(Configuration conf);
FileSystem local = FileSystem.getLocal(conf);
Hadoop文件API使用Path编制文件和目录名. 使用FileStatus对象来存储元数据, PutMerge程序合并一个本地目录所有文件.
Path inputDir = new Path(args[0]);
FileStatus[] inputFiles = local.listStatus(inputDir);
PutMerge程序通过FSDataInputStream对象访问Path来读取文件.
FSDataInputStream in = local.open(inputFiles[i].getPath());
FSDataInputStream是一个Java标准输入流.
public class PutMerge{
public void test(String[] args){
Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);
FileSystem local = FileSystem.getLocal(conf);
//设定输入目录与输出文件
Path inputDir = new Path(args[0]);
Path hdfsFile = new Path(args[1]);
try{
//得到本地文件列表
Hadoop文件API起点:FileSystem.
通过调用factory方法FileSystem.get(Configuration conf)来的到FileSystem实例.
具体写法:
Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);
得到一个专用于本地文件系统的FileSystem对象,可以用factory方法FileSystem.getLocal(Configuration conf);
FileSystem local = FileSystem.getLocal(conf);
Hadoop文件API使用Path编制文件和目录名. 使用FileStatus对象来存储元数据, PutMerge程序合并一个本地目录所有文件.
Path inputDir = new Path(args[0]);
FileStatus[] inputFiles = local.listStatus(inputDir);
PutMerge程序通过FSDataInputStream对象访问Path来读取文件.
FSDataInputStream in = local.open(inputFiles[i].getPath());
FSDataInputStream是一个Java标准输入流.
public class PutMerge{
public void test(String[] args){
Configuration conf = new Configuration();
FileSystem hdfs = FileSystem.get(conf);
FileSystem local = FileSystem.getLocal(conf);
//设定输入目录与输出文件
Path inputDir = new Path(args[0]);
Path hdfsFile = new Path(args[1]);
try{
//得到本地文件列表