无法使用DIH将大数据导入solr

时间:2017-03-14 08:16:51

标签: solr

我正在尝试使用mySql中的dih导入大数据。 以下是mySql

的batchSize = -1的数据源
<dataSource batchSize="-1" driver="com.mysql.jdbc.Driver" .....  />

如果获取所有1000万条记录。 但最后说完全导入失败了。 我在日志中得到以下异常。 :

2017-03-14 07:27:04.429 ERROR (Thread-14) [   x:companyData] o.a.s.h.d.DataImporter Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: java.sql.SQLException: Operation not allowed after ResultSet closed
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:270)
    at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:416)
    at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:475)
    at org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:458)
    at org.apache.solr.handler.dataimport.DataImporter$$Lambda$85/252359661.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: java.sql.SQLException: Operation not allowed after ResultSet closed
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)
    at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329)
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:232)
    ... 5 more

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您遇到的错误与Solr无关,而与您访问数据库的方式有关。

如果您查看例外:java.sql.SQLException: Operation not allowed after ResultSet closed

我建议将batchSize参数更改为其他值,例如1000

  

batchSize选项用于检索数据库表的行   批量生产以减少内存使用量(通常用于   运行数据导入处理程序时防止内存不足。   虽然较低的批量可能较慢,但该选项并不打算   影响导入过程的速度。