2015-09-25 81 views
0

我有大约50TB的内容。这套文件的数量约为2.5亿。每天增加到这个不是很大,不过我的约10000个大小不超过50MB的文档。 目前的索引工作时间太长,估计要在100天以上完成!
所以......这真的是一大堆数据集?对我而言,50TB的内容(在这个时代)并不是很大。你有这个尺寸的内容吗?如果你这样做,你是如何提高一次性索引的时间?另外,您是如何通过实时索引来缩短时间的?
如果你可以回答..很好。如果你能指出我的正确方向,那么也要赞赏。
大数据集Solr索引

在此先感谢。
rd

+0

检查此http://stackoverflow.com/a/31935578/2254048。如果批量索引处于打开状态,也可以禁用softCommit以进行批量索引。另请阅读https://wiki.apache.org/solr/SolrPerformanceFactors。 – YoungHobbit

+0

Solr中的数字本身是毫无意义的:简单的CSV导入可以处理30K文档/秒,足够复杂的Tika处理可能意味着1个文档/分钟。如果YoungHobbit的建议无效,请更详细地描述您正在处理的数据和你如何将它们添加到Solr。 –

回答

0

有许多因素需要考虑。

  1. 您可以从客户端开始索引。你在使用哪个客户端。它是Solrj还是监听数据库的任何框架(如oracle或Hbase)或其他API。 这可以有所作为,因为Solr善于处理它们,但客户端的客户端框架和数据准备工作也需要进行优化。例如,如果您使用Hbase索引器(从Hbase表读取数据并写入Solr),则可以期望几百万的数据在几小时左右就被索引。那么,这不应该花很多时间来完成2.5亿。

  2. 客户端之后,进入Solr环境。您在文档中索引了多少个字段。你也有存储字段或任何其他字段类型的开销。

  3. 根据记录数或RAm大小配置像autoCommit这样的参数,如上面注释中提到的softCommit,用于索引数据的并行线程,Hardware是指向cosider的一些指向。

你可以找到综合清单here,并可以验证每个。快乐设计