【发布时间】:2019-08-30 19:27:38
【问题描述】:
我无法将数据附加到 HDFS 中的现有文件。我希望如果文件存在,则附加一行,如果不存在,则使用给定的名称创建一个新文件。
这是我写入 HDFS 的方法。
if (!file.exists(path)){
file.createNewFile(path);
}
FSDataOutputStream fileOutputStream = file.append(path);
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
br.append("Content: " + content + "\n");
br.close();
实际上这个方法写入 HDFS 并创建一个文件,但正如我提到的,它不是附加的。
这是我测试我的方法的方式:
RunTimeCalculationHdfsWrite.hdfsWriteFile("RunTimeParserLoaderMapperTest2", "Error message test 2.2", context, null);
第一个参数是文件名,第二个是消息,另外两个参数不重要。
所以有人知道我错过了什么或做错了什么吗?
【问题讨论】:
-
首先你需要知道hdfs是一次性写入文件系统。我们不能追加或覆盖到 hdfs。但是,我们可以尽可能多地阅读。请通过
Hadoop :The definitive Guide预订此书。 -
变量
file的类型是什么?
标签: java hadoop hdfs filewriter