准备工作:
1、准备3台服务器,确保互相之前能ping通
172.30.12.215
172.30.12.218
172.30.13.201
2、系统:centos7.4
3、机器已经安装好jdk
一、下载 es
官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
二、安装 es
1、将es解压到 /opt
目录下
tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz -C /opt
2、重命名(可忽略)
mv elasticsearch-7.15.2 elasticsearch
3、创建目录
mkdir /opt/elasticsearch/data
三、修改配置文件
#集群名字,三台集群的集群名字都必须一致
cluster.name: es
#指定主节点 7.1版本后不配置会报错master not discovered yet
cluster.initial_master_nodes: ["node-1"]
#当前节点名字
node.name: node-1
#该节点是否有资格选举为master
node.master: true
#存储索引数据,三台都设为true即可
node.data: true
#数据位置
path.data: /opt/elasticsearch/data
#日志位置
path.logs: /opt/elasticsearch/logs
#锁住物理内存,不使用swap内存,有swap内存的可以开启此项
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
#设置集群的初始节点列表,集群互通端口为9300
discovery.zen.ping.unicast.hosts: ["172.30.13.201:9300","172.30.12.215:9300","172.30.12.218:9300"]
#集群最小主节点数目
discovery.zen.minimum_master_nodes: 2
#发现超时时间
discovery.zen.ping_timeout: 3s
将配置好的es分发到其他两台服务器上:
scp -r /opt/elasticsearch root@172.30.12.215:/opt/
scp -r /opt/elasticsearch root@172.30.12.218:/opt/
四、调优
1、jvm调优
vim /opt/elasticsearch/config/jvm.options
-Xms1g 修改为 ===> -Xms4g
-Xmx1g 修改为 ===> -Xmx4g
设置为物理内存一半最佳,可根据服务器内存去选择调
2、操作系统调优(必须配置,否则ES起不来)
- 在/etc/sysctl.conf添加如下内容
fs.file-max=655360
vm.max_map_count=655360
sysctl -p生效
解释:
(1)fs.file-max=655360
系统最大打开文件描述符数
(2)vm.max_map_count=655360
限制一个进程拥有虚拟内存区域的大小
不修改可能启动报错:
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
- 编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
解释:nofile-最大打开文件描述符
不修改可能启动报错:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
此文件修改后需要重新登录用户,才会生效
五、创建普通用户
因为es不允许root用户启动
groupadd es
useradd es -g es -p es
chown -R es:es /opt/elasticsearch
su es
六、启动
三台服务上依次启动es
/opt/elasticsearch/bin/elasticsearch
浏览器访问:http://172.30.13.201:9200/_cat/nodes?v
如果节点都启动成功,会显示:
七、设置最大分页数
查看当前设置
curl -XGET 127.0.0.1:9200/索引名/_settings
返回
{
"scorpus": {
"settings": {
"index": {
"routing": {
"allocation": {
"include": {
"_tier_preference": "data_content"
}
}
},
"refresh_interval": "1s",
"number_of_shards": "5",
"provided_name": "scorpus",
"creation_date": "1655454636590",
"store": {
"type": "fs"
},
"number_of_replicas": "1",
"uuid": "7_0BCh28QxWUoiehWRb62w",
"version": {
"created": "7150299"
}
}
}
}
}
这里没有 max_result_window配置,es采用的是默认的10000。使用以下命令修改
curl -XPUT 127.0.0.1:9200/scorpus/_settings -H 'content-Type:application/json' -d '{"index.max_result_window":"1000000"}'
修改成功后返回
{"acknowledged":true}
再次查看设置,就能看到设置的最大值
{
"scorpus": {
"settings": {
"index": {
"routing": {
"allocation": {
"include": {
"_tier_preference": "data_content"
}
}
},
"refresh_interval": "1s",
"number_of_shards": "5",
"provided_name": "scorpus",
"max_result_window": "1000000",
"creation_date": "1655454636590",
"store": {
"type": "fs"
},
"number_of_replicas": "1",
"uuid": "7_0BCh28QxWUoiehWRb62w",
"version": {
"created": "7150299"
}
}
}
}
}
注意:
1、此方法是设置单索引,如果需要更改索引需要将scorpus换成_all
2、即使换成_all,对于新增的索引,还是默认的10000
网友评论