【问题标题】:Multiple Maps updating a log file synchronisation issue多个地图更新日志文件同步问题
【发布时间】:2012-07-16 02:19:05
【问题描述】:

我正在更新 HDFS 上的文件。

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

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

    根据Hadoop - The Definitive Guide

    多个写入者,任意文件修改
    HDFS 中的文件可以由单个写入器写入。写总是在 文件的结尾。不支持多个作者或修改 文件中的任意偏移量。 (这些可能会在未来得到支持,但它们是 可能效率相对较低。)

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

    MapR distribution of Apache Hadoop 支持随机读取和写入,同时支持多个读取器和写入器。

    【讨论】:

      【解决方案2】:

      HDFS 文件是不可变的。所以你只能附加到它们。 并发追加的问题在这里介绍:Is it possible to append to HDFS file from multiple clients in parallel? 简而言之 - 你不应该。
      我还要指出,这不是“先生精神”。如果您想从映射器收集一些数据并将其聚合在一起 - 这正是减速器的作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        • 2020-05-08
        • 2023-03-10
        • 2018-07-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多