• elasticsearch集群部署、配置


    系统:CentOS7

    前提:安装好JDK

    ES与JDK对应表,截止日期:2022-01-12

     一、安装ES

    1、下载或者上传安装包

            elasticsearch-7.15.2-linux-x86_64.tar.gz

    2、解压安装包(-C:指定目录)

            tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz -C /opt

    3、创建普通用户

            因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

            useradd elasticsearch #新增elasticsearch用户

            passwd elasticsearch #为elasticsearch用户设置密码

    4、为新用户授权,否则无法运行es

            cd /opt/

            chown -R elasticsearch:elasticsearch elasticsearch-7.15.2

    5、修改elasticsearch.yml文件(root用户改也可以)

            vi /opt/elasticsearch-7.15.2/config/elasticsearch.yml

    内容:

            cluster.name: fb-es-cluster #配置elasticsearch的集群名称

            node.name: node-1 #节点名

            network.host: 0.0.0.0 #设置为0.0.0.0允许外网访问

            http.port: 9200 #http访问端口

            cluster.initial_master_nodes: ["node-1"] #初始化新的集群时需要此配置来选举master

            #如果是CentOS 6版本 加入以下两行

            bootstrap.memory_lock: false

            bootstrap.system_call_filter: false

    6、修改其他配置文件

            新创建的elasticsearch用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容

            #切换到root用户

            su root

            #1.===最大可创建文件数太小======

            vi /etc/security/limits.conf

            #在文件末尾中增加下面内容

            elasticsearch soft nofile 65536

            elasticsearch hard nofile 65536

            vi /etc/security/limits.d/90-nproc.conf (这里有可能是20-nproc.conf

            #在文件末尾中增加下面内容

            elasticsearch soft nofile 65536

            elasticsearch hard nofile 65536

            * hard nproc 4096

    #注:*代表Linux所有用户名称

    #2.===系统内核配置====

            vi /etc/sysctl.conf

    #在文件中增加下面内容

            vm.max_map_count=655360

    #重新加载,输入下面命令:

            sysctl -p

    解释:max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。当进程达到了VMA上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。

    #3.===最大虚拟内存太小====

            vi jvm.options

            -Xms512m  #elasticsearch启动时jvm所分配的初始堆内存大小

            -Xmx512m  #elasticsearch启动之后允许jvm分配的最大堆内存大小,生产环境中可能需要调大

    注意: 1、-Xms512m前面不能有空格,否则会报错

            2、值不能带数点

            3、如果内存足够大,可以不用修改,默认为1G,最好不要超过内存的50%

    7、启动elasticsearch

            su elasticsearch #切换到elasticsearch用户启动

            cd /opt/elasticsearch-7.4.0/bin

            ./elasticsearch -d #启动 (加了-d是后台启动,将看不到启动时的日志)

    8、访问elasticsearch

            http://xxx.xxx.xxx.xxx:9200

            注:在访问elasticsearch前,请确保防火墙是关闭的,或者对外开放9200端口

    一、开放端口:(重启防火墙生效:systemctl restart firewalld.service)

            firewall-cmd --zone=public --add-port=9200/tcp --permanent

    查看已经开放的端口(防火墙开启的情况下):

            firewall-cmd --list-ports

    ***注意 9300端口也要开放 ***

    二、关防火墙执行命令:(不见意)

            #暂时关闭防火墙

            systemctl stop firewalld

            #或者

            #永久设置防火墙状态

            systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原

            systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

            #以上命令关闭防火墙不管用试试下面这行

            service iptables stop

    二、部署集群

            主节点:192.168.2.56

            数据节点:192.168.2.57、192.168.2.58

    步骤:

            1、拷贝副本(或者重新解压安装另外两个节点

            2、修改elasticsearch.yml配置文件(3台机器都执行)

            2.1 创建日志目录

            cd /opt

            mkdir logs

            mkdir data

            #授权给elasticsearch用户

            chown -R elasticsearch:elasticsearch ./logs

            chown -R elasticsearch:elasticsearch ./data

            2.2 修改3个节点的elasticsearch.yml配置

            节点:192.168.2.56

            ## 集群名称,保证唯一

            cluster.name: fb-es-cluster

            #### 节点名称,必须不一样

            node.name: node-1

            #是不是有资格成为主节点 (配置文件里没有,加上)

            node.master: true

            #是否存储数据 (配置文件里没有,加上)

            node.data: true

            #最大集群节点数 (配置文件里没有,加上)

            node.max_local_storage_nodes: 3

            #ip地址.

            network.host: 0.0.0.0

            #端口

            http.port: 9200

            #内部节点之间沟通端口 (9700端口也要和9200一样对外放开)

            transport.tcp.port: 9700

            #es7.x 之后新增的配置,节点发现

            discovery.seed_hosts: (是本机的话不填IP,填localhost)["192.168.2.56:9700","192.168.2.57:9700","192.168.2.58:9700"]

            #es7.x 之后新增的配置,初始化一个新的集群时需要次配置来选举master

            cluster.initial_master_nodes: ["node-1","node-2","node-3"]

            #数据和存储路径

            path.data: /opt/data

            path.logs: /opt/logs

            #如果是CentOS 6版本 加入以下两行

            bootstrap.memory_lock: false

            bootstrap.system_call_filter: false

            节点:192.168.2.57

            和2.56节点的节点名称、IP不一样,其它的都一样

            节点:192.168.2.57

            和2.56节点的节点名称、IP不一样,其它的都一样

    2.3 设置ES的JVM占用内存参数

            vi /opt/elasticsearch-7.15.2/config/jvm.options

            默认情况下,ES启动JVM最小内存1G,最大内存1G

            -Xms256m -Xmx256m

    2.4 启动3个节点

            ./elasticsearch -d

    2.5 查看集群状态

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

    结果:

     

    返回的node.total是3,代表集群搭建成功

  • 相关阅读:
    新能源汽车行业资讯-2022-9-19
    CSS 笔记(九):布局 —— 定位
    纷享销客2022新增长系列之《高科技行业橙皮书》重磅发布
    Redis Stream 数据结构实现原理真的很强
    网站/顶会/工作组
    移动端输入框的失焦事件和按钮事件冲突
    jmeter压测GraphQL接口(两种方式)
    【21天学习挑战】经典算法之【冒泡排序】
    数据库系统概念学习1
    53.【Java 集合】
  • 原文地址:https://blog.csdn.net/u012433915/article/details/125504381