无法从Map写入hadoop文件系统(hdfs)

h7wcgrx3  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

我试图直接从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);
    }
}

它不以伪分布式模式写任何东西。然而,在单机版中写得很完美。
问题出在哪里?

kninwzqo

kninwzqo1#

我使用的是amazonelasticmapreduce(emr),我必须通过uri获取文件系统才能使用s3中的文件。

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

那可能帮不了你。

相关问题