我有一些数据需要每天摄入Solr,每天的数据大约是10-12 GB,而且我必须在过去的1年内完成一项追赶工作,每天大约10-12 GB数据
我正在使用Java,如果同一个唯一密钥再次到达,我需要通过部分更新对我的数据进行评分,我将docValues与TextField一起使用。
https://github.com/grossws/solr-dvtf
最初,我使用了一种耗费大量时间的顺序方法(从S3读取并以60k的批量添加到Solr中)。
我找到了这个回购:
https://github.com/lucidworks/spark-solr,
但我无法理解实现,因为我需要修改某些评分逻辑的字段数据,所以写了自定义的火花代码。
然后我在Solr中创建了4个节点(在相同的IP上),并使用Spark来插入数据,最初由Spark创建的分区比Solr节点以及执行者'更多。指定的不仅仅是节点,因此需要花费更多时间。
然后我将RDD重新划分为4(Solr节点的数量),指定4个执行器,然后插入花费的时间更少并且成功,但是当我运行相同的一个月时,一个或多个Solr节点继续下降,我在HD上有足够的可用空间,很少我的ram使用结束了。
请建议我解决这个问题的方法,我有8个核心CPU, 或者我应该在Solr上为不同的节点使用不同的系统吗?
谢谢!
答案 0 :(得分:1)
我不确定spark是将大量数据加载到solr中的最佳方式。
将数据加载到solr的可能选项包括:
如果您想了解有关这些内容的更多信息,请与我们联系。