Solr Dataimporthandler 导入MySQL 内存溢出。
2019独角兽企业重金招聘Python工程师标准>>>
最近准备把一千九百多万数据导入Solr中,在以前测试数据只有一两百万,全量导入没有任务问题。但是,换成一千九百万数据时,solr报内存异常(java.lang.OutOfMemoryError:GC overhead limit exceeded),整个tomcat无法使用。我发现,我给tomcat最大堆内存512M。我觉得,可能是内存过小,于是,我把内存改大些,1024M(set JAVA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256M )。结果,还是内存溢出。我想已经不是tomcat内存的问题(当然,如果你的内存足够大,也是可行的)。问题,应该出在solr的dataimporthandler取数据那块。solr除了内存溢出错误,还有其他异常:
Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select * from POI Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:278)
at 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)
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select * from POI Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:418)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:331)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:239)
... 3 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select * from POI Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:281)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:238)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:42)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:243)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:477)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)
... 5 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 395,021 milliseconds ago. The last packet sent successfully to the server was 395,021 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:1653)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1409)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2883)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:476)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2576)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1757)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2167)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2637)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2566)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:782)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:625)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:274)
... 12 more
Caused by: java.io.EOFException: Can not read response from server. Expected to read 39 bytes, read 30 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2497)
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:1634)
... 23 more
我搜索了一下Solr的wiki,了解到solr jdbc取数据时,setBatchSize的问题。默认,会把很多数据放到内存中,这也是导致我的内存居高不下,后来导致内存溢出的原因。于是,我修改dataimporthandler配置文件:batchSize="-1" 解决内存溢出
配置文件修改如下:
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/world" user="root"password="root" batchSize="-1" />
重启一个solr的core,重新导入,问题解决。
转载于:https://my.oschina.net/u/734885/blog/602075
Solr Dataimporthandler 导入MySQL 内存溢出。相关推荐
- mysql导入 内存溢出_Solr Dataimporthandler 导入MySQL 内存溢出。
最近准备把一千九百多万数据导入Solr中,在以前测试数据只有一两百万,全量导入没有任务问题.但是,换成一千九百万数据时,solr报内存异常(java.lang.OutOfMemoryError:GC ...
- 数据库周刊54丨2020 年度报告:PingCAP、腾讯云数据库、人大金仓、GoldenDB ;CPU 100% SQL优化案例;Mysql内存溢出处理;避免删库跑路黑天鹅……
热门资讯 [1.PingCAP 2020 年度报告|相信开放的力量 [摘要]本文为PingCAP 2020年度报告.盘点了PingCAP里程碑大事件:完成D轮2.7亿美元融资,创造全球数据库历史新的里 ...
- mysql导入 内存溢出_导入数据库内存溢出
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- php mysql 内存溢出_关于MySQL的整型数据的内存溢出问题的应对方法_MySQL
今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 .经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1).后来通过给朋友那边把MySQL 5.1升级到MySQL 5. ...
- xampp mysql 内存溢出_php - SQLSTATE [HY000] [2002]连接被拒绝 - 堆栈内存溢出
我通过将主机更改为localhost尝试了其他解决方案,但仍然没有帮助. 我正在尝试使用php artisan migrate连接MySQL,但出现以下异常: : SQLSTATE[HY000] [2 ...
- mysql 内存溢出_mysql - MySQL在非常大的表上计算性能 - 堆栈内存溢出
我在Innodb中有一个表格,其中有超过1亿行. 我必须知道外键= 1时是否有超过5000行.我不需要确切的数字. 我做了一些测试: => 16 seconds => 16秒中 => ...
- solr mysql 导入命令_(solr系列:四)将mysql数据库中的数据导入到solr中及删除solr中导入的数据...
在前面的博文中,已完成了在tomcat中对solr的部署,为solr添加了一个自定义的core,并且引入了ik分词器. 那么该如何将本地的mysql的数据导入到solr中呢? 准备工作: 1.mysq ...
- solr两种安装、ik分词器设置、DIH导入mysql数据
文章目录 solr 安装(内置方式) solr 安装(tomcat方式) IK中文分词器设置 solr数据操作 使用dataimport导入数据库数据 solr 安装(内置方式) 安装包 官网下载安装 ...
- Windows下Solr的安装与配置,附DIH全量导入MySQL数据、IK分词器配置详解——不用集成Tomcat
Solr是Apache开源的比较稳定的一款全文搜索引擎,也是市面上相对比较流行的一款全文搜索引擎,好不好用你用过之后自有判断.今天给大家分享一下它的安装与配置,我用的是7.7.2版本.废话不多说,开搞 ...
- jdbc查询大数据,上亿数据 不会内存溢出(参考solr源码封装)
目标 最近公司要求做一个web版ETL工具,需要一次性查询出来任意一张表的所有的数据,有一张表到达了1亿两千万,所有经过探索采用了以下的方案 先说一下内存溢出的原因 jdbc查询mysql时,默认会一 ...
最新文章
- News Break!沈向洋投资并出任美国版“今日头条”董事长
- cnn卷积神经网络_卷积神经网络(CNN)原理及应用
- 疯子的算法总结12--倍增
- c# 衍生类和基类的构造顺序
- 系统架构的演变 -----自 罗文浩
- 论文笔记(Neural Collaborative Filtering)
- html + css + js 实现简易计算器
- c语言设计底层,【学习小总结】C语言的底层开发
- inx函数python_Python数据分析入门
- java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
- SAP 物料成本核算冻结:料号. 不能过账,是否取消?消息 CK167
- 使用 miniprogram-ci 进行小程序代码的上传、预览等操作
- log4j 日志输出级别区别
- linux卷影复制功能,vssadmin 卷影复制服务管理命令行工具
- marxico马克飞象
- wpsa4排版_如何用WPS快速排版
- 英语计算机演讲,计算机英语小演讲 原创
- 主引导记录MBR的结构和作用
- 企业文化在企业管理中的作用
- 实现canvas圆形橡皮檫像素清空功能
热门文章
- java 8 特点_Java8的特性有哪些
- 动态规划: 数字三角形
- python中的字典操作_python中的字典以及相关操作
- 在access中一列称为_ACCESS考试_笔试
- python3 ValueError: The shape of the input to Flatten is not fully defined (got (0, 6, 80)
- 通过minicom传送文件的相关配置及使用方法
- DVWA中学习PHP常见漏洞及修复方法
- 北京长途汽车站一览表
- JavaScript实现map
- 手把手教你逆向分析 Android 程序