MapReduce -生成HDFS路径



我想在我的mapper代码上生成HDFS路径。文件系统有我们可以从命令行做的所有方法,如put, get, mkdir等…如何在我的mapper或reducer代码中生成它的路径

我使用的是MR2 ..

谢谢。

read input.txt from HDFS

  public class HdfsRead {
        public static void main(String[] args) throws IOException {
            String uri = args[0];
            Configuration conf = new Configuration();
            FileSystem fs = FileSystem.get(URI.create(uri), conf);
            FSDataInputStream in = null ;
            try
            {byte [] buffer = new byte[256];
                in = fs.open(new Path(uri));
                    IOUtils.copyBytes(in, System.out, 4096, false);    
            }
            finally
            {
                IOUtils.closeStream(in);
            }   
        }
    }

检查文件,如果已经存在,删除它

FileSystem fs = FileSystem.get(conf);
Path path =  new Path(args[0]);
if(fs.exists(path)){
    fs.delete(path);
}
commandline argument 
args[0] = "hdfs://localhost:9000/input.txt"

您可以在Mapper/Reducer代码中使用setup()方法,并使用FileSystem API创建目录。如果你想检查目录/文件是否已经存在,那么使用FileSystem类中的"exists"方法。

相关内容

  • 没有找到相关文章

最新更新