1

我正在更新 HDFS 上的文件。

我如何确保所有地图所做的更改都存在于文件中,即文件上的写入操作是否同步?

4

2 回答 2

0

根据Hadoop - 权威指南

多个写入者,任意文件修改
HDFS 中的文件可以由单个写入者写入。写入始终在文件末尾进行。不支持多个写入者或文件中任意偏移处的修改。(将来可能会支持这些,但它们可能效率相对较低。)

由于 Hadoop 的性质(多节点/映射器/减速器等),应用程序级同步实际上是不可能的。

Apache Hadoop的MapR 发行版支持随机读取和写入,同时支持多个读取器和写入器。

于 2012-07-16T05:24:23.807 回答
0

HDFS 文件是不可变的。所以你只能附加到它们。这里讨论了并发追加的问题:是否可以从多个客户端并行追加到 HDFS 文件? 简而言之 - 你不应该。
我还要指出,这不是“先生精神”。如果您想从映射器收集一些数据并将其聚合在一起 - 这正是减速器的作用。

于 2012-07-16T13:14:00.687 回答