Linux部署elasticsearch集群

文章目录


一、集群规划

IP 角色
192.168.1.10 node-1
192.168.1.20 node-2
192.168.1.30 node-3

二、安装前准备(所有节点操作)

创建数据目录

sh 复制代码
mkdir /data

修改系统配置文件/etc/sysctl.conf

sh 复制代码
echo "vm.max_map_count = 655360" >> /etc/sysctl.conf
sysctl -p    #重新加载

创建用户组

sh 复制代码
groupadd elastics
useradd -r -g elastics elastics
mkdir /home/elastics
chown -R elastics:elastics /home/elastics

设置limits.conf

vi /etc/security/limits.conf

在最后增加:

sh 复制代码
elastics soft nofile 655360   #solf是软限制的意思,hard是硬限制;软限制可以在程序的进程中自行改变(突破限制),而硬限制则不行(除非程序进程有root权限)
elastics hard nofile  655360  #nofile 文件描述符
elastics soft nproc 655360    #nproc  进程的限制
elastics hard nproc 655360
elastics soft memlock unlimited
elastics hard memlock unlimited


注意:该配置需要重新登录方可生效

三、初始化配置(在节点1上操作)

下载安装包

官网下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz

解压安装包

sh 复制代码
tar xvf elasticsearch-7.13.4-linux-x86_64.tar.gz -C /data/
cd /data/
mv elasticsearch-7.13.4 elasticsearch
mkdir -p /data/elasticsearch/{data,logs}

修改jvm.options文件下配置的所占内存

复制代码
vi /data/elasticsearch/config/jvm.options

修改为:(按照实际情况来定,一般为内存的一半)

复制代码
-Xms2g
-Xmx2g

修改集群配置文件elasticsearch.yml

vi /data/elasticsearch/config/elasticsearch.yml

增加如下配置

sh 复制代码
#集群名称
cluster.name: my-application
#节点名称,三台不能一样
node.name: node-1
#是否有资格竞选主节点
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
transport.tcp.compress: true
#节点发现,填写对应节点虚机地址,单机部署只有一个
discovery.seed_hosts: ["192.168.1.10","192.168.1.10","192.168.1.10"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
discovery.zen.minimum_master_nodes: 2
gateway.recover_after_nodes: 2
gateway.recover_after_time: 5m
gateway.expected_nodes: 2
search.max_buckets: 90000000
indices.query.bool.max_clause_count: 10240
#cluster.routing.allocation.same_shard.hos: true
bootstrap.memory_lock: true
http.cors.enabled: true
http.cors.allow-origin: "*"

将安装包传到另外两个节点

sh 复制代码
rsync -avzP /data/elasticsearch 192.168.1.20:/data/
rsync -avzP /data/elasticsearch 192.168.1.30:/data/

在另外两个节点上修改elasticsearch.yml

只需将node.name的值分别修改为node-2和node-3即可

四、配置开机自启动(所有节点操作)

vi /etc/init.d/elasticsearch

修改文件内容为:(需在非root用户执行,若为root用户,则切换为别的用户)

sh 复制代码
#!/bin/sh
#chkconfig: - 85 15
#description: elasticsearch
export ES_HOME=/data/elasticsearch
case "$1" in
start)
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
    echo "elasticsearch startup"
    ;;
stop)
    kill -9 `cat $ES_HOME/pid`
    echo "elasticsearch stopped"
    ;;
restart)
    kill -9 `cat $ES_HOME/pid`
    echo "elasticsearch stopped"
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
    echo "elasticsearch startup"
 ;;
*)
    echo "start|stop|restart"
    ;;
esac
exit $?

设置开机自启

sh 复制代码
chmod 777 /etc/init.d/elasticsearch
chkconfig --add elasticsearch
chkconfig elasticsearch on

五、启动集群(在所有节点依次操作)

sh 复制代码
chown -R elastics:elastics /data/elasticsearch
su - elastics
service elasticsearch start

六、查看集群状态

http://192.168.1.10:9200/_cat/nodes?v

http://192.168.1.10:9200/_cat/health?v

相关推荐
虾..4 小时前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙4 小时前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
hkhkhkhkh1236 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen7 小时前
Linux字符串处理
linux·string
张童瑶7 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功1237 小时前
什么是SELinux
linux
石小千7 小时前
Linux安装OpenProject
linux·运维
柏木乃一7 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-30907 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu
百年渔翁_肯肯8 小时前
Linux 与 Unix 的核心区别(清晰对比版)
linux·运维·unix