我试图直接从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条答案
按热度按时间kninwzqo1#
我使用的是amazonelasticmapreduce(emr),我必须通过uri获取文件系统才能使用s3中的文件。
那可能帮不了你。