一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第23天,点击查看活动详情
本章节继续上节Elasticsearch常见知识点讲解,附带分组查询代码示例
ES分片介绍
ES 5.x之后默认为5,ES 7.x默认为1
ES默认为一个索引创建1个主分片, 并分别为其创建一个副本分片. 也就是说每个索引都由1个主分片, 而每个主分片都相应的有一个copy
ElasticSearch 7.x之后,如果不指定索引分片,默认会创建1个主分片和一个副分片,而7.x版本之前的,比如6.x版本,默认是5个主分片
从 7.0 开始,默认主分片设置成了 1,解决了 over-sharding 的问题
shard也是一种资源,shard过多会影响集群的稳定性。因为shard过多,元信息会变多,这些元信息会占用堆内存。shard过多也会影响读写性能,因为每个读写请求都需要一个线程。
所以如果index没有很大的数据量,不需要设置很多shard。
ES漏洞处理
ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析
处理办法
关掉执行脚本功能,
在配置文件末尾elasticsearch.yml里为每一个结点都加上:
script.disable_dynamic: true
/opt/package/elasticsearch-1.0.0/config/elasticsearch.yml
www.elasticsearch.org/guide/en/el…
官方会在1.2版本默认关闭动态脚本。
kopf安装
将kopf安装包解压至/usr/share/elasticsearch/plugins/kopf目录下,(此处路径请根据elasticsearch安装情况自行调整)
unzip elasticsearch-kopf-2.1.2.zip -d /usr/share/elasticsearch/plugins/
mv elasticsearch-kopf-2.1.2 kopf
无需重启,访问127.0.0.1:9200/_plugin/kopf,(此处的127.0.0.1为elasticsearch 所在服务器IP)
bigdesk安装
1.从改地址下载安装包github.com/lukas-vlcek… 后解压
2.建立elasticsearch-1.0.0\plugins\bigdesk_site文件
3.将解压后的bigdesk-master文件夹下的文件copy到_site
4.运行es
5.打开http://localhost:9200/_plugin/bigdesk/
总结
工欲善其事必先利其器,我们在了解完ES的相关概念后,可以选择合适自己的客户端工具,通过工具也能很方便的分析ES相关的问题,可能很同学在刚开始接触ES是抗拒的,尤其是java相关的聚合查询写法较为负责,不过没关系,多多熟悉一下,你会被其优异的查询性能所折服。除了kopf和bigdesk外,cerebro也是一个不错的选择