我正在更新HDFS上的文件。
如何确保所有地图所做的更改都存档,即文件上的写入操作是否已同步?
答案 0 :(得分:0)
根据Hadoop - The Definitive Guide
多个作家,任意文件修改
HDFS中的文件可以由单个写入器写入。写作总是在 文件的结尾。不支持多个编写器或修改 文件中的任意偏移量。 (这些可能在未来得到支持,但它们是 可能效率相对较低。)
由于Hadoop(多个节点/映射器/缩减器等)的性质,实际上不可能进行应用程序级同步。
MapR distribution of Apache Hadoop支持随机读写,同时支持多个读者和编写者。
答案 1 :(得分:0)
HDFS文件不可变。所以你只能附加给他们。
这里将介绍并发附加问题:Is it possible to append to HDFS file from multiple clients in parallel?
简而言之 - 你不应该。
我还要指出,这不是“精神先生”。如果你想从映射器中收集一些数据并将它们聚合在一起 - 它正是reducer的作用。