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

问题描述 投票:0回答:1

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

我正在使用Hadoop迈出第一步,所以我只想使用MapReduce程序,即without工具,例如Spark,Pig,Hive等。程序的开始,在创建Job对象之前,然后将所有ID放入Java HashMap中,该Java HashMap可从mapper任务访问。如果新数据中缺少键,则映射器将输出该键。 reducer会担心缺少的ID类别,这是另一回事了。作业完成后,我将较新的数据移动到旧数据的文件夹中。

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

java hadoop hashmap mapreduce hdfs
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.