Mysql 在solr导入中关闭ResultSet后不允许执行操作

Mysql 在solr导入中关闭ResultSet后不允许执行操作,mysql,solr,apache-zookeeper,solrcloud,Mysql,Solr,Apache Zookeeper,Solrcloud,在solr-6.6.0中执行完全导入时遇到错误。 我得到了一个例外 当我设置 我的db-config.xml中的batchSize=“-1” 如果我将此值更改为batchSize=“100”,则导入将无任何错误地运行 但建议的值为“-1”。 任何关于solr为何抛出此异常的建议 顺便说一下,我尝试导入的数据并不庞大,我尝试导入的数据只有250个文档 堆栈跟踪: org.apache.solr.handler.dataimport.DataImportHandlerException: java.

在solr-6.6.0中执行完全导入时遇到错误。 我得到了一个例外

当我设置
我的db-config.xml中的batchSize=“-1”

如果我将此值更改为batchSize=“100”,则导入将无任何错误地运行

但建议的值为“-1”。 任何关于solr为何抛出此异常的建议

顺便说一下,我尝试导入的数据并不庞大,我尝试导入的数据只有250个文档

堆栈跟踪:

org.apache.solr.handler.dataimport.DataImportHandlerException: java.sql.SQLException: Operation not allowed after ResultSet closed
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:61)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.hasnext(JdbcDataSource.java:464)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator$1.hasNext(JdbcDataSource.java:377)
at org.apache.solr.handler.dataimport.EntityProcessorBase.getNext(EntityProcessorBase.java:133)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:75)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:267)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:475)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:516)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:232)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:415)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:474)
at org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:457)
at java.lang.Thread.run(Thread.java:745)
顺便说一下,我又收到一个警告:

Could not read DIH properties from /configs/state/dataimport.properties :class org.apache.zookeeper.KeeperException$NoNodeException
当配置目录不可写时会发生这种情况。 如何使配置目录在solrCloud模式下可写。 我用动物园管理员当看门狗。我们可以继续更改zookeeper提供的配置文件的权限吗? 非常感谢您的帮助。

只有在没有fetchSize=“-1”的情况下运行时出现问题,才建议您使用它。它的行为取决于JDBC驱动程序,但人们认为它的原因是:

DataImportHandler设计为逐行流式处理。它将fetch size值(默认值:500)传递给语句#setFetchSize,某些驱动程序不支持该语句。对于MySQL,将batchSize属性添加到值为-1的数据源配置中。这将把Integer.MIN_值作为获取大小传递给驱动程序,并防止大型表的内存不足

除非您实际看到默认值存在问题,否则不要使用该设置,而是假设您的JDBC驱动程序做了正确的事情(…它可能不会将
-1
作为值)

dataimport.properties必须可写的原因是,它将上次导入运行到文件时的属性写入,以便您可以通过引用SQL语句中上次更新的时间来执行增量更新


如果要使用此功能,必须使客户机(solr)的目录可写。我的猜测是,如果不使用增量导入,您可以忽略警告。

我正在运行增量导入。当我们使用zookeeper存储这些配置文件时,如何使目录可写?