三台linux服务器,将下载好的es压缩包分别上传到服务器,然后解压
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
因为安全问题,elasticsearch不允许root用户直接运行,需要单独创建新用户运行
#使用root用户创建es新用户
useradd myes #新增es用户
passwd myes #设置用户密码
如果想要删除用户,可以
userdel -r myes
创建用户完成后,进行授权,路径就是解压的es文件路径
# 记得授权,不然myes用户启动会提示权限不足
chown -R myes:myes /opt/elasticsearch-7.8.0
3.1 修改/opt/elasticsearch-7.8.0/config/elasticsearch.yml
文件
# 集群名称
cluster.name: my-es
# 节点名称,每个节点名称不能重复
node.name: node-1
# ip地址,每个节点的ip地址不能重复,也可以填当前服务器的hostname
network.host: hll1
# 是不是有资格主节点
node.master: true
node.data: true
# es端口
http.port: 9200
# head插件需要打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
# es7.x后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# es7.x后新增的配置,节点发现
discovery.seed_hosts: ["hll1:9300", "hll2:9300", "hll3:9300"]
# 集群中最少几个节点可用
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
# 集群内同时启动的数据任务个数,默认2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
# 添加或删除节点及负载均衡时并发恢复的线程个数,默认4个
cluster.routing.allocation.node_concurrent_recoveries: 16
配置完成后,将elasticsearch.yml
文件复制到另外两台服务器,替换原先的旧文件
注:不能重复的配置项需要根据服务器修改,比如节点名,ip地址等
# 复制hll1机器的配置文件到hll2和hll3,elasticsearch.yml文件的路径不要替换错了
scp elasticsearch-7.8.0/config/elasticsearch.yml root@hll2:/opt/elasticsearch-7.8.0/config/
scp elasticsearch-7.8.0/config/elasticsearch.yml root@hll3:/opt/elasticsearch-7.8.0/config/
复制到另外两台服务器之后,记得修改配置!!!
elasticsearch.yml文件要写规范点,不然会启动服务时会提示:expected block end, but found block mapping start
配置项开头不要用tab缩近,也不要空格
3.2 修改/etc/security/limits.conf
# 在文件末尾添加下面内容,myes是新创建的用户名
myes soft nofile 65536
myes hard nofile 65536
3.3 修改/etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容,myes是新创建的用户名,* 代表 Linux 所有用户名称
myes soft nofile 65536
myes hard nofile 65536
* hard nproc 4096
3.4 修改/etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
重新加载
sysctl -p
注:上面修改的文件都需要在另外的服务器进行同样的配置修改,可手动修改也可scp直接复制到另外的服务器
# hll2
scp /etc/security/limits.conf root@hll2:/etc/security/
scp /etc/security/limits.d/20-nproc.conf root@hll2:/etc/security/limits.d/
scp /etc/sysctl.conf root@hll2:/etc/
sysctl -p
# hll3
scp /etc/security/limits.conf root@hll3:/etc/security/
scp /etc/security/limits.d/20-nproc.conf root@hll3:/etc/security/limits.d/
scp /etc/sysctl.conf root@hll3:/etc/
sysctl -p
拷贝完成后另外两台服务器需要执行sysctl -p
,不要忘记了
分别启动不同节点的es,使用你新创建的用户启动
su myes
cd /opt/elasticsearch-7.8.0/
# 启动es
bin/elasticsearch
# 后台方式启动
bin/elasticsearch -d
如果服务器内存不够的话,可以将es启动内存设置小一点
vim /opt/elasticsearch-7.8.0/config/jvm.options