gpt4 book ai didi

java - Hadoop中最原始方式的数据协调

转载 作者:行者123 更新时间:2023-12-01 17:59:20 27 4
gpt4 key购买 nike

我需要根据关键比较在 Hadoop 中进行数据协调。这意味着我会将旧数据放在一个文件夹中,而新数据将放入不同的文件夹中。在批处理结束时,我只是计划将新数据移至旧数据中。数据将是 json 文件,我必须从中提取 key 。

我正在迈出使用 Hadoop 的第一步,所以我只想仅使用 MapReduce 程序来完成它,即没有诸如 Spark、Pig、Hive 等工具。我想简单地遍历所有在程序开始时、创建 Job 对象之前,将旧数据放入其中,并将所有 ID 放入可从映射器任务访问的 Java HashMap 中。如果新数据中缺少某个键,映射器将输出该键。 reducer 会关心丢失的 ID 的类别,但那是另一回事了。工作完成后,我会将新数据移动到旧数据的文件夹中。

我发现唯一有点笨拙的是 Java HashMap 对象的加载阶段。这可能不是最优雅的解决方案,所以我想知道 MapReduce 模型是否有一些专用的数据结构/功能用于这种目的(在第一个映射任务运行之前使用 HDFS 中的所有数据填充全局 HashMap )?

最佳答案

我认为使用 HashMap 解决方案不是一个好主意。您可以为命令使用少量输入。取决于输入文件映射器可以了解该数据是否是新的并用合适的值写入它。然后reducer将检查该数据是否仅包含在“新输入”中并写入该数据。因此,作为工作的结果,您只会获得新数据。

关于java - Hadoop中最原始方式的数据协调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60663011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com