ES-03-CentOS下ElasticSearch集群搭建

31 篇文章 0 订阅
9 篇文章 0 订阅

说明

  • CentOS下ElasticSearch集群搭建
  • 集群搭建的一些准备工作是基于单节点安装,具体参照我的上一篇文章“CentOS下安装ElasticSearch”
  • 本案例以单服务器多端口模拟集群环境(由node-9201、node-9202、node-9203三个节点共同组成)
  • ES集群正常工作至少需要3台服务节点。如果只有两台节点,当主节点挂掉后会导致另一台是无法被选举为主节点,最终导致整个集群停止服务。如果3台中两台宕机也会导致集群停止服务。
    • 具体影响因素参考本文“其他配置”中的discovery.zen.minimum_master_nodes参数
  • 官方文档:https://www.elastic.co/cn/

操作步骤

》解压缩

  • 安装包列表

    [root@192 ES]# ll
    total 311360
    -rw-r--r--. 1 501 games 306436527 Jan 17 12:03 elasticsearch-7.9.3-linux-x86_64.tar.gz
    
  • 解压缩到一个目录,比如:/usr/local/es/cluster/node-9201

  • 确定已经添加了es用户

  • 确定目录所属用户为es,如果不是,root身份执行以下命令

    [root@192 ES]# chown -R es:es /usr/local/es/cluster/
    
  • 接下来的操作切换为es用户

    [root@192 ES]# su es
    
  • 切换到该目录

    [es@192 node-9201]$ pwd
    /usr/local/es/cluster/node-9201
    [es@192 node-9201]$ ll
    total 568
    drwxr-xr-x.  2 es es   4096 Jan 20 22:44 bin
    drwxr-xr-x.  3 es es    169 Jan 20 22:44 config
    drwxr-xr-x.  8 es es     96 Jan 20 22:44 jdk
    drwxr-xr-x.  3 es es   4096 Jan 20 22:44 lib
    -rw-r--r--.  1 es es  13675 Jan 20 22:44 LICENSE.txt
    drwxr-xr-x.  2 es es      6 Jan 20 22:44 logs
    drwxr-xr-x. 51 es es   4096 Jan 20 22:44 modules
    -rw-r--r--.  1 es es 544318 Jan 20 22:44 NOTICE.txt
    drwxr-xr-x.  2 es es      6 Jan 20 22:44 plugins
    -rw-r--r--.  1 es es   7007 Jan 20 22:44 README.asciidoc
    

》修改配置

  • config/jvm.options

    -Xms128m
    -Xmx128m
    
  • config/elasticsearch.yml

    # 集群名称
    cluster.name: my-app
    
    # 节点名称
    node.name: node-9201
    
    # 节点是否可作为master
    node.master: true
    
    # 节点是否数据节点
    node.data: true
    
    # host名称(可以是IP,也可以是hostname)
    network.host: 192.168.3.201
    
    # http端口
    http.port: 9201
    
    # 集群节点间通信端口
    transport.port: 9301
    
    # 集群初始化时可被选举master的节点
    cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
    
    # 节点发现(可以是IP,也可以是hostname)
    discovery.seed_hosts: ["192.168.3.201:9301", "192.168.3.201:9302", "192.168.3.201:9303"]
    
    
  • 注意:此时修改好先不要启动,如果启动了,下一步复制文件夹时,新的文件夹中需要清空data文件夹和logs文件夹否则启动报错。

》克隆配置好的ES环境并更改端口等配置

  • 将上一步配置好的文件夹“node-9201”整个复制两份,分别命名为“node-9202”、“node-9203”

    [es@192 cluster]$ pwd
    /usr/local/es/cluster
    [es@192 cluster]$ ll
    total 0
    drwxr-xr-x. 10 es es 167 Jan 21 17:29 node-9201
    drwxr-xr-x. 10 es es 167 Jan 21 17:30 node-9202
    drwxr-xr-x. 10 es es 167 Jan 21 17:30 node-9203
    
  • 修改配置:node-9202/config/elasticsearch.yml

    # 集群名称
    cluster.name: my-app
    
    # 节点名称
    node.name: node-9202
    
    # 节点是否可作为master
    node.master: true
    
    # 节点是否数据节点
    node.data: true
    
    # host名称(可以是IP,也可以是hostname)
    network.host: 192.168.3.201
    
    # http端口
    http.port: 9202
    
    # 集群节点间通信端口
    transport.port: 9302
    
    # 集群初始化时可被选举master的节点
    cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
    
    # 节点发现(可以是IP,也可以是hostname)
    discovery.seed_hosts: ["192.168.3.201:9301", "192.168.3.201:9302", "192.168.3.201:9303"]
    
    
  • 修改配置:node-9203/config/elasticsearch.yml

    # 集群名称
    cluster.name: my-app
    
    # 节点名称
    node.name: node-9203
    
    # 节点是否可作为master
    node.master: true
    
    # 节点是否数据节点
    node.data: true
    
    # host名称(可以是IP,也可以是hostname)
    network.host: 192.168.3.201
    
    # http端口
    http.port: 9203
    
    # 集群节点间通信端口
    transport.port: 9303
    
    # 集群初始化时可被选举master的节点
    cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
    
    # 节点发现(可以是IP,也可以是hostname)
    discovery.seed_hosts: ["192.168.3.201:9301", "192.168.3.201:9302", "192.168.3.201:9303"]
    
    

》分别启动三个ES服务

  • 便于查看日志,首次先前台启动

    # 启动第一个节点:node-9201
    [es@192 node-9201]$ bin/elasticsearch
    
    # 启动第二个节点:node-9202
    [es@192 node-9202]$ bin/elasticsearch
    
    # 启动第三个节点:node-9203
    [es@192 node-9203]$ bin/elasticsearch
    
  • 如果没有问题,以后可以后台启动

    # 启动第一个节点:node-9201
    [es@192 node-9201]$ bin/elasticsearch -d
    
    # 启动第二个节点:node-9202
    [es@192 node-9202]$ bin/elasticsearch -d
    
    # 启动第三个节点:node-9203
    [es@192 node-9203]$ bin/elasticsearch -d
    
  • 后续可以考虑做成系统服务,start|stop|restart就方便了,然后加入开启自启动。具体可以参考我的Linux开机自启动相关文章,改吧改吧就行了,标特否~

》查看集群状态

  • 请求方式:GET

  • 发送请求:

    curl -X GET http://192.168.3.201:9201/_cat/nodes?v
    
  • 响应结果:

    ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
    192.168.3.201           57          93  31    5.45    1.97     0.92 dilmrt    *      node-9201
    192.168.3.201           68          93  28    5.45    1.97     0.92 dilmrt    -      node-9203
    192.168.3.201           60          93  23    5.45    1.97     0.92 dilmrt    -      node-9202
    
    

》其他配置

  • 以下配置可能你会用到

    # 选取master时需要参与的最少候选主节点数,默认1。如果使用默认值,网络不好时可能出现脑裂问题。
    discovery.zen.minimum_master_nodes: 1
    
    # 跨域相关配置(head插件需要开启)
    http.cors.allow-origin: "*"
    http.cors.enabled: true
    http.max_content_length: 100mb
    
    # 网络其他配置
    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: 4
    # 添加或删除节点及负载均衡时并发恢复的线程个数,默认4个
    cluster.routing.allocation.node_concurrent_recoveries: 8
    # 初始化数据恢复时,并发恢复线程的个数,默认4个
    cluster.routing.allocation.node_initial_primaries_recoveries: 8
    
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值