Solr8.0速成系列 | Solr挑战千万级别数据-备课细节 07
开篇主旨:
创建一个solr8.0最新专栏,为让粉丝学员学到更多,特此准备 实战 千万数据级别的一堂课,穿插讲解了其它方面的技能点,如架构设计、软件安装、系统优化、linux运维等...
课程准备过程中遇到很多问题,出现很多波折,特此记录下
实战
1.博客表构建
爬取了**** 一万多条优质博客,因为含有文章内容大字段,所以理论上有千万级别的数据,可是索引到solr中的过程中出现各种问题(问题以及解决方案下文会讲到)
不得已改变思路,创建1000万的模拟数据,表只建立了3个字段
博客表:Id,标题,介绍
这样表的记录简单多了
1.如何构建1000万条数据?
采用这种方法,复制之前博客表数据,递增插入
INSERT into lp_blog SELECT uuid(), title, intro from lp_blog (重复执行几次就ok)
备注:可以LIMIT 0,1000000限制插入数据量也能解决
2.承接上面语句:插入千万条大数据量报错,会报“The total number of locks exceeds the lock table size”
问题是mysql innodb_buffer_pool_size设置默认是8M,所以继续改配置
windows cmd:
mysql -u root -p
密码:root
进入mysql命令
show variables like "%_buffer%";(不要忘记带;号,没有;号表示一条语句没有结束)
默认的innodb_buffer_pool_size=8M
修改 innodb_buffer_pool_size的值为3G:
SET GLOBAL innodb_buffer_pool_size=67108864;(3*1024*1024*1024,不要忘记;号)
3.承接问题2:. Variable 'innodb_buffer_pool_size' is a read only variable
如错误提,因为是window版本绿色版,所以
window安装的可以直接更改my.ini的配置innodb_buffer_pool_size 然后重启mysql即可
4.启动solr多次导入数据失败?
导入到一半就系统错误
直接解决方案:
指定内存,linux需要加-force
bin/solr start -m 8g -force
5.数据正常导入,但是速度特别的慢,一秒200+
解决方案:发现磁盘满了,内存不多造成,重新换了一台机器,内存扩扩展到20G,硬盘200G,这项速度执行上升
数据占用2G+,
2000万数据,用时7分钟+,还是很快的
6.启动成功访问solr管理页面,无法访问
这个就很好解决了,防火墙没关造成的(因为是新装的虚拟机、配置JDK、配置的静态IP等)
命令如下:
# service firewalld start; 或者 #systemctl start firewalld.service;#开启防火墙
# service firewalld stop; 或者 #systemctl stop firewalld.service;#关闭防火墙
# service firewalld restart; 或者 #systemctl restart firewalld.service; #重启防火墙
systemctl disable firewalld.service#禁止防火墙开启自启
7.可以访问
还有其他一些问题,不过先整理课件了,准备课程...
课程部分构思
准备相关软件
End
希望小伙伴有所收获,抱团学,相互进步,做个一朝架构师迈进的程序员,欢迎关注转发 @架构师速成记