常用查询模式
- 7.0+ 精确数量
1 | "track_total_hits":true, |
- 脚本查询
1 | GET /content_summary/_search |
- insert
1 | PUT twitter/_doc/1 |
- update
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-update.html
1 | POST /starhalo_video_group/_update/v16qt0hbc0 |
1 | POST /starhalo_video_group/_update_by_query?conflicts=proceed |
批量更新 https://elasticsearch.cn/question/8085
1 | from elasticsearch import Elasticsearch |
- 脚本实现增删改查
1 |
|
elasticsearch 安装
选择一个目录放 elasticsearch 项目
这里放在~/pkgs/ 目录下面
cd
mkdir pkgs
cd pkgs
下载 elasticsearch
方式一:共享目录:smb://192.168.1.100/soft/packages/elasticsearch-7.4.0-linux-x86_64.tar.gz
方式二:直接从官网下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz
解压
tar xfv elasticsearch-7.4.0-linux-x86_64.tar.gz
配置
修改系统参数
sudo sysctl -w vm.max_map_count=262144
或者:
- 编辑 /etc/sysctl.conf
- 添加 vm.max_map_count=262144
- 或者:echo “vm.max_map_count=262144” >> /etc/sysctl.conf
- 执行 sysctl -p
- more /proc/sys/vm/max_map_count 观察效果
sudo vim /etc/security/limits.conf
添加如下内容:
- soft memlock unlimited
- hard memlock unlimited
备注:* 代表 Linux 所有用户名称
修改配置文件
vim config/elasticsearch.yml
cluster.name: es_cluster #集群名称,同一个集群的机器,此名称必须相同
node.name: node-1 #节点名称,同一个集群的节点名称不能相同
network.host: 192.168.8.108 #节点 host
http.port: 9200 #节点端口,不配的话默认就是 9200
transport.tcp.port: 9300 #节点 tcp 端口,不配的话默认是 9300
discovery.seed_hosts: [“172.21.1.44”, “172.21.1.45”, “172.21.1.46”] #集群初始化 host 列表,可以将集群其他机器的 ip 写在列表里,作为节点启动时的初始化集群列表,此列表中的 ip 必须和本机在同一集群中
cluster.initial_master_nodes: [“node-1”, “node-2”] #集群启动时,可用于选举作为主节点的机器,可以写 ip 也可以写节点名称
vim config/jvm.options
修改 jvm 内存,物理内存一半,不能超过 32G
-Xms16g
-Xmx16g
修改 gc 为 g1,
-XX:+UseG1GC
其他节点的配置类似
启动
./bin/elasticsearch, 后台运行在命令后面加 -d 参数
./bin/elasticsearch -d
优化
- 调整磁盘同步速率
1 | PUT /_cluster/settings |
- 修改 refresh 周期(默认一秒),有实时要求的集群不设置
1 | PUT /picture_online/_settings |
- 增加慢查询记录
1 | PUT _settings |
Kibana 安装
kibana 与 elasticsearch 是配套的,必须安装同一版本的 kibana, 可以从官网找到需要的版本
下载地址:
https://artifacts.elastic.co/downloads/kibana/kibana-7.4.2-linux-x86_64.tar.gz
下载后解压,
配置
打开 config 下的 kibana.yml 配置文件
server.port: 5601 #默认端口是 5601
server.host: “192.168.8.108” #修改 server.host 为本机 ip
server.name: “yourkibana” #服务名称
elasticsearch.hosts: [“http://192.168.8.108:9200"] #集群中 es 的 host, 一般写主节点的 ip
启动
nohup /bin/kibana & 后台启动
kibana 标题修改
6.5.4 版本修改:./src/ui/ui_render/views/chrome.pug
7.0 以上版本修改: ./src/legacy/ui/ui_render/views/chrome.pug
1 | title Sh-Search |
横向扩容
sh-search 计划从 3 台机器扩容到 9 台机器
操作流程如下
- 修改配置,保持集群名相同,修改:
node.name: node-4
network.host: 172.21.0.108
- 重启,观察集群可以自动发现新增节点,观察节点正常进入服务状态
- 逐台添加
- 完成后,在集群的 setting 中修改最小 master 节点数为 N/2+1
1 | PUT /_cluster/settings |
缩减节点
- 先在集群中排除此节点
1 | PUT _cluster/settings |
- 停实例
集群配置样例
1 | cluster.name: vdm-content #集群名称 |
启动监控
只需要开启如下配置:(7.5.0)
1 | xpack.monitoring.collection.enabled: true |
reindex
迁移索引
https://www.jianshu.com/p/afae616bdef5
https://blog.csdn.net/lpp_dd/article/details/78554839
1 |
|
network.host 可以配置特殊值,并且可以配置多个
1 | network.host: _local_, _site_ |
ES devtool 使用请求
1 |
|
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com