我必须处理大量数据。我希望使用分布式计算(可扩展)对其进行处理。我正在从 apache Solr 获取数据。在传递特定输入时,我从 apache solr 得到一个巨大的数据集。对于这个数据集中的每条记录,我会将主键传递给 REST api 以获得一些将附加到记录的信息。然后每条记录都会进行一些更新。最终巨大集合中的每个更新的对象都将作为单独的 xml 文件写入一个文件夹中。
hadoop 是否适用于这种特定场景?。我在 hadoop mapreduce 文档中看到了 wordcount 示例。我试图以类似的方式考虑我的情况,其中 map reduce 为 2 个节点发出的 map 将是
Node1 - Map<InputIdToSolr1,Set<RecordsFromSolr1to500>>
Node2 - Map<InputIdToSolr1,Set<RecordsFromSolr500to1000>>
然后这个结果将由 hadoop 中的 reduce 函数组合。与 wordcount 不同,我的节点在每个节点的 map 中只有一个元素。我不确定使用 hadoop 是否有意义。我可以使用哪些其他选项/开源 Java 项目来扩展记录的处理。我从春天看到了 Terracotta,但它似乎是一个商业应用程序。