java - Hadoop,用于处理来自Apache Solr的数据

标签 java solr hadoop mapreduce

我必须处理大量数据。我希望使用分布式计算(可伸缩)进行处理。
我正在从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项目来扩展记录的处理。我从 Spring 开始就看到过Terracotta,但它似乎是一种商业应用程序。

最佳答案

不知道您要寻找的可扩展性规模,但是我首先会在多核设备上尝试多线程解决方案。

如果性能不符合预期,并且您具有获取更多硬件和应用程序实例的灵活性,则可以开始考虑Map-Reduce解决方案。

尽管Terracota是专有的和商业的,但它并非来自Spring / SpringSource / VMWare。

关于java - Hadoop,用于处理来自Apache Solr的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284038/

相关文章:

collections - 使用计划任务更新 Coldfusion solr 集合

Solr luceneMatchVersion 语法

java - Java 9 中 vector/流数据的异步、可组合返回值

java - GRPC : call was half-closed error

java - 运行不存在的 jar 不会导致任何异常/错误

solr - Solr 可以提高社交 "likes"数量的结果吗?

java - spring mvc Controller 报错java.lang.IllegalStateException : No suitable resolver for argument [0]

hadoop - 为什么即使启用了日志记录,我的 yarn 应用程序也没有日志?

scala - Spark 中向量之间的平方距离

hadoop - 如何使用 Hadoop MapReduce 处理一个二维数组,每个文件一个?