iam使用solr 4.7.1并尝试进行完全导入。我的数据源是mysql中的一个表。它有10000000行和20列。
每当我试图做一个完整的导入solr停止响应。但是当我尝试进行400000或更低的导入时,它可以正常工作。
如果我尝试导入的数量超过此solr,则不会对结果进行索引,否则它将停止响应或显示"索引失败"。在错误日志中,它表示"无法执行查询"。但是我不明白查询如何针对较少数量的记录运行正常但是当我运行更多记录时失败
我的系统配置如下
CPU-I7 拉姆-6Gb OS-64位窗口7 我无法弄清问题是什么,我已经尝试将max_allowed_packet增加到1000M甚至java堆大小。
请提前帮助谢谢
这是错误代码
`处理时出现异常:playername文档:SolrInputDocument(fields:[]):org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT player_id,firstname,lastname,value1,value2,value3,value4 ,value5,value6,value7,value8,value9,value10,value11,value18,value19,value20,country_id,playername_modtime,player_flag from playername WHERE' true' !=' false'或者playername.playername_modtime> ' 2014-05-23 10:38:56'在org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)的org.apache.solr.handler.dataimport.JdbcDataSource $ ResultSetIterator。(JdbcDataSource.java:281)处理文档#1。位于org.apache.solr.handler.dataimport的org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:42)的apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:238)。位于org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)的org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java)中的SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59): 243)org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:477)org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)atg.apache.solr .handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:331)at org.apache.solr.handler.dataimport.DocBuilder.execut e(DocBuilder.java:239)org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:483) at org.apache.solr.handler.dataimport.DataImporter $ 1.run(DataImporter.java:464)引起:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通讯链接失败
从服务器成功收到的最后一个数据包是130,037毫秒。成功发送到服务器的最后一个数据包是130,038毫秒。 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127)at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2288) )com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:2044)com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3549)com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java: 489)com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3240)at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2411)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java) :2834)com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2832)com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2781)com.mysql.jdbc.Statement的com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2832) Impl.execute(StatementImpl.java:908)位于org.apache.solr.handler.dataimport.JdbcDataSource $ ResultSetIterator的com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)。(JdbcDataSource.java:274)。 .. 12更多引起:java.io.EOFException:无法读取服务器的响应。预计读取6个字节,在连接意外丢失之前读取4个字节。在com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3161)com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2269)... 23更多5/23/2014 8:32:18 PM错误DataImporter完全导入失败:java.lang.RuntimeException:java.lang.RuntimeException:org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT player_id,firstname,lastname,value1,value2, value3,value4,value5,value6,value7,value8,value9,value10,value11,value18,value19,value20,country_id,playername_modtime,player_flag from playername WHERE&#39 ;真正的' !=' false'或者playername.playername_modtime> ' 2014-05-23 10:38:56'处理文件#1上次检查:2014年5月23日下午8:36:34`
答案 0 :(得分:3)
将batchSize =“ - 1”添加到data-config.xml并且工作正常