有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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