ElasticSearch 7.X 多节点集群搭建

一、节点规划

主机名

(hostname)

IP

节点名称

(node name)

主节点候选

(master-eligible nodes)

数据节点

(data nodes)

centos-node1

172.24.61.98

elastic-node1

true

true

centos-node2

172.24.8.14

elastic-node2

true

true

centos-node3

172.24.58.89

elastic-node3

true

true

二、安装部署

(一)部署第一个节点

2.1 部署OS

1、安装部署centos 7

2、设置IP

3、修改hostname、hosts文件

hosts文件中加入三个主机节点的IP与主机名映射:

172.24.61.98 centos-node1

172.24.8.14 centos-node2

172.24.58.89 centos-node3

4、修改系统配置文件

1)在/etc/sysctl.conf中添加

vm.max_map_count=655360

2)在/etc/security/limits.conf中添加

*       soft    nofile  655350
*       hard    nofile  655350
*       soft    nproc   102400
*       soft    memlock unlimited
*       hard    memlock unlimited

2.2 安装JVM

从官网下载并解压oracle java jdk 17.0.1版本安装压缩包文件。

2.3 安装ElasticSearch

1、从官网下载elasticsearch 7.15.1版本

wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.15.1-linux-x86_64.tar.gz

2、解压

以非root用户身份下载并解压安装包,elasticsearch不允许以root用户角色运行。

tar xzvf metricbeat-7.15.1-linux-x86_64.tar.gz

3、创建java运行环境软连接

在elasticsearch解压缩文件目录elasticsearch-7.15.1目录下,创建Java运行目录软连接,指向Oracle Java的解压缩文件夹。

ln -s /home/jdk-17.0.1 jdk

4、修改elasticsearch配置文件

elasticesearch配置文件elastic search.yml位于安装包解压目录下的config文件夹下。主要配置如下:

cluster.name: elastic-cluster

node.name: elastic-node1

node.master: true

node.data: true

node.attr.rack: r1

path.data: /home/yangqg/elasticsearch-7.15.1/data

path.logs: /home/yangqg/elasticsearch-7.15.1/logs

network.host: 172.24.61.98

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: ["172.24.61.98:9300", "172.24.8.14:9300","172.24.58.89:9300"]

cluster.initial_master_nodes: ["elastic-node1", "elastic-node2","elastic-node3"]

xpack.ml.enabled: false

2.4 将elasticsearch配置为后台服务

1、创建elasticsearch.service文件

        以root用户在 /usr/lib/systemd/system/ 目录下创建 elasticsearch.service文件,内容如下:

[Unit]
Description=elasticsearch
Wants=network-online.target
After=network-online.target

[Service]
Environment=ES_HOME=/home/yangqg/elasticsearch-7.15.1
Environment=ES_PATH_CONF=/home/yangqg/elasticsearch-7.15.1/config
Environment=PID_DIR=/home/yangqg/elasticsearch-7.15.1/config
#EnvironmentFile=/etc/sysconfig/elasticsearch
WorkingDirectory=/home/yangqg/elasticsearch-7.15.1

Type=forking
User=yangqg
Group=yangqg

ExecStart=/home/yangqg/elasticsearch-7.15.1/bin/elasticsearch -d -p ${PID_DIR}/elasticsearch.pid

StandardOutput=journal
StandardError=inherit

PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

2、赋权elasticsearch.service可执行权限

chmod +x /usr/lib/systemd/system/elasticsearch.service

3、重新加载systemd的守护线程

systemctl daemon-reload

4、设置为启动服务

systemctl enable elasticsearch.service

5、启动elasticsearch.service

systemctl start elasticsearch.service

6、查看elasticsearch.serivce状态

systemctl status elasticsearch.service

ps aux|grep java

(三)部署其他节点

2.5 克隆第一个节点

2.6 修改克隆节点的相关配置文件

1、修改hostname

2、修改网络配置文件的IP地址

3、修改elasticsearch配置文件elasticesearch.yml的相关配置项:

node.name

network.host

(四)启动elasticsearch集群

分别在三个节点服务器elasticsearch部署目录elasticsearch-7.15.1下,以elasticsearch安装部署用户(非root用户)运行:

./bin/elasticsearch

(五)查看集群节点运行状态

浏览器端输入:

http://172.24.61.98:9200/_cluster/state/nodes

{
    "cluster_name":"elastic-cluster",
    "cluster_uuid":"2RHz7OHsTP6yHFUFmZwQlA",
    "nodes":
    {
        "gpyUqtLNQkye704NgYr9oQ":
        {
            "name":"elastic-node2",
            "ephemeral_id":"oMxzMUmBRMaZSJ48RA-WuA",
            "transport_address":"172.24.8.14:9300",
            "attributes":{"rack":"r1","xpack.installed":"true","transform.node":"true"},
            "roles":["data","data_cold","data_content","data_frozen","data_hot","data_warm","ingest","master","remote_cluster_client","transform"]
        },
        "AuXoBpWTQEii4k8bpYlibg":
        {
            "name":"elastic-node1",
            "ephemeral_id":"5PKzbCp6RVCN9k28wXqzsw",
            "transport_address":"172.24.61.98:9300",
            "attributes":{"rack":"r1","xpack.installed":"true","transform.node":"true"},
            "roles":["data","data_cold","data_content","data_frozen","data_hot","data_warm","ingest","master","remote_cluster_client","transform"]
        },
        "393jx3JGRmycD9na951aVg":
        {
            "name":"elastic-node3",
            "ephemeral_id":"4R699B3HQeGlSw_BIvEoAQ",
            "transport_address":"172.24.58.89:9300",
            "attributes":{"rack":"r1","xpack.installed":"true","transform.node":"true"},
            "roles":["data","data_cold","data_content","data_frozen","data_hot","data_warm","ingest","master","remote_cluster_client","transform"]
        }
    }
}

(六)新增一个数据节点

1、将第一个节点克隆

2、修改克隆节点服务器的hostname、IP

3、修改新节点(克隆节点)elasticsearch的配置文件内容:

cluster.name: elastic-cluster
node.name: elastic-node4
node.master: false
node.data: true
network.host: 172.24.146.115

4、删除elasticsearch部署目录下data文件夹的全部内容

5、启动新增节点的elasticsearch服务

三、客户端安装集群管理工具

        Edge或Chrome浏览器,安装Elasticvue扩展。提供方:https://elasticvue.com

安装完扩展后,可通过浏览器的elasticvue扩展程序查看elasticsearch的运行状态,并可测试REST API。

ElasticSearch 7.X 多节点集群搭建_第1张图片

四、注意事项

        多个节点的集群,务必在所有节点修改完elasticsearch.yml配置文件后再启动elasticsearch服务。如若在没有完成cluster.initial_master_nodes这两个配置项前启动节点的elasticsearch服务,则节点会以开发模式(单节点模式)启动服务,并自动创建一个新的集群,其他节点无法加入这个集群,这时集群中只有一个节点。

        如若你先按照开发模式启动了节点,后期希望转为生产模式的话,则需要按如下步骤操作:

        1、先关闭所有节点的elasticsearch服务;

        2、删除所有节点elasticsearch部署目录下data文件夹下的全部内容;

        3、配置并检查cluster.initial_master_nodes,确保已正确设置集群初始化主控节点;

        4、一次重启所有节点的elasticsearch服务,并检查所有节点是否加入单一的集群。

        elasticsearch7.15.1版本要求CPU支持SSE4.2指令集。如若您的CPU不支持该指令集,则需要在elasticsearch.yml文件中配置xpack.ml.enabled: false项。

你可能感兴趣的:(IT,elasticsearch,大数据,big,data)