Solr8.0速成系列 | Solr挑战千万级别数据-备课细节 07

版权声明:专注于技术分享,原创版权归 十年呵护所有,转载请标明原文链接,更多信息可关注 wwws.shinians.com 官网 https://blog.csdn.net/zzhuan_1/article/details/90416122

开篇主旨:

创建一个solr8.0最新专栏,为让粉丝学员学到更多,特此准备 实战 千万数据级别的一堂课,穿插讲解了其它方面的技能点,如架构设计、软件安装、系统优化、linux运维等...

课程准备过程中遇到很多问题,出现很多波折,特此记录下

实战

1.博客表构建

爬取了csdn 一万多条优质博客,因为含有文章内容大字段,所以理论上有千万级别的数据,可是索引到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

希望小伙伴有所收获,抱团学,相互进步,做个一朝架构师迈进的程序员,欢迎关注转发  @架构师速成记

猜你喜欢

转载自blog.csdn.net/zzhuan_1/article/details/90416122
07