不可能从地图写入hadoop文件系统(HDFS)

时间:2013-03-13 00:39:21

标签: file hadoop hdfs mapper

我正在尝试直接从mapper在hadoop文件系统中编写纯文本文件。

我这样做:

public void createFile(Configuration conf) throws IOException{    
    FileSystem fs = FileSystem.get(conf);

    Path filenamePath = new Path(conf.get("mapred.output.dir")+"/_"+conf.get("mapred.task.id"), "tree.txt");    

        try {

      if (fs.exists(filenamePath)) {        
        // remove the file first
        fs.delete(filenamePath);            
      }

      FSDataOutputStream out = fs.create(filenamePath);       
      out.writeUTF("hello, world!");        
      out.close();

    } catch (IOException ioe) {
        System.err.println("IOException during operation: " + ioe.toString());
        System.exit(1);
    }
}

并且它不会在伪分布式模式下写入任何内容。但是,在独立写作中完美无缺。

问题出在哪里?

1 个答案:

答案 0 :(得分:1)

我使用的是Amazon Elastic MapReduce(EMR),我必须get FileSystem by URI才能使用S3中的文件。

FileSystem fs = FileSystem.get(uri, conf);

这可能对您没有帮助。