首页 > 其他分享 >Elasticsearch7.x - 集群部署

Elasticsearch7.x - 集群部署

时间:2023-09-14 18:22:40浏览次数:53  
标签:node http 部署 xxx cluster Elasticsearch7 集群 节点 es

目录

1. 软件下载

软件下载地址:https://www.elastic.co/cn/downloads/past-releases/

2. 集群部署

  • 多个不同的节点(es)要提供不同的端口号,将集群当成一个整体来使用。
  • 一个 Elasticsearch 集群有一个唯一的名字标识,节点只能通过指定某个集群的名字,来加入这个集群。
  • 建议部署3台
# 解压缩到三台服务器 node1、node2、node3
tar -zxvf elasticsearch-7.5.1-linux-x86_64.tar.gz 
# 在三台服务器分别改名
mv elasticsearch-7.5.1 es-node1
mv elasticsearch-7.5.1 es-node2
mv elasticsearch-7.5.1 es-node3

3. 创建账户

因为安全问题, Elasticsearch 不允许 root 用户直接运行,所以要在每个节点中创建新用户,在 root 用户中创建新用户

#root账户下新增es用户

useradd es #新增用户
passwd es #为 es 用户设置密码
userdel -r es  #如果错了,可以删除再加
chown -R es:es /home/yc/elastic/es-node1 #文件夹所有者
chown -R es:es /home/yc/elastic/es-node2 #文件夹所有者
chown -R es:es /home/yc/elastic/es-node3 #文件夹所有者

#给最高权限
chmod 775 文件名

4. 集群搭建

Linux集群搭建

1)解压软件:tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module

2)创建用户:Elasticsearch 不允许 root 用户直接运行,所以要创建新用户。

3)修改三个节点上的config/elasticsearch.yml 文件

  • node-1

    # 加入如下配置
    #集群名称
    cluster.name: cluster-es
    #节点名称, 每个节点的名称不能重复
    node.name: node-1
    #ip 地址,填入每个节点的ip
    network.host: xxx.xxx.xxx.xxx
    #是不是有资格主节点
    node.master: true
    node.data: true
    # 设置对外服务的http端口,默认为9200
    http.port: 9200
    # 设置节点间交互的tcp端口,默认是9300
    transport.tcp.port: 9300
    # 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: ["xxx.xxx.xxx.xxx:9300","xxx.xxx.xxx.xxx:9301","xxx.xxx.xxx.xxx:9302"]
    #集群内同时启动的数据任务个数,默认是 2 个
    cluster.routing.allocation.cluster_concurrent_rebalance: 16
    #添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
    cluster.routing.allocation.node_concurrent_recoveries: 16
    #初始化数据恢复时,并发恢复线程的个数,默认 4 个
    cluster.routing.allocation.node_initial_primaries_recoveries: 16
    
    
  • node-2

    # 加入如下配置
    #集群名称
    cluster.name: cluster-es
    #节点名称, 每个节点的名称不能重复
    node.name: node-2
    #ip 地址,填入每个节点的ip
    network.host: xxx.xxx.xxx.xxx
    #是不是有资格主节点
    node.master: true
    node.data: true
    # 设置对外服务的http端口,默认为9200
    http.port: 9201
    # 设置节点间交互的tcp端口,默认是9300
    transport.tcp.port: 9301
    # 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: ["xxx.xxx.xxx.xxx:9300","xxx.xxx.xxx.xxx:9301","xxx.xxx.xxx.xxx:9302"]
    #集群内同时启动的数据任务个数,默认是 2 个
    cluster.routing.allocation.cluster_concurrent_rebalance: 16
    #添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
    cluster.routing.allocation.node_concurrent_recoveries: 16
    #初始化数据恢复时,并发恢复线程的个数,默认 4 个
    cluster.routing.allocation.node_initial_primaries_recoveries: 16
    
    
  • node-3

    # 加入如下配置
    #集群名称
    cluster.name: cluster-es
    #节点名称, 每个节点的名称不能重复
    node.name: node-3
    #ip 地址,填入每个节点的ip
    network.host: xxx.xxx.xxx.xxx
    #是不是有资格主节点
    node.master: true
    node.data: true
    # 设置对外服务的http端口,默认为9200
    http.port: 9202
    # 设置节点间交互的tcp端口,默认是9300
    transport.tcp.port: 9302
    # 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: ["xxx.xxx.xxx.xxx:9300","xxx.xxx.xxx.xxx:9301","xxx.xxx.xxx.xxx:9302"]
    #集群内同时启动的数据任务个数,默认是 2 个
    cluster.routing.allocation.cluster_concurrent_rebalance: 16
    #添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
    cluster.routing.allocation.node_concurrent_recoveries: 16
    #初始化数据恢复时,并发恢复线程的个数,默认 4 个
    cluster.routing.allocation.node_initial_primaries_recoveries: 16
    

3)需要修改一下系统的相关配置

  • 修改/etc/security/limits.conf(es是新建的账户)

    # 在文件末尾中增加下面内容
    # 每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    
  • 修改/etc/security/limits.d/20-nproc.conf

    # 在文件末尾中增加下面内容
    # 每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    # 操作系统级别对每个用户创建的进程数的限制
    * hard nproc 4096
    # 注:* 带表 Linux 所有用户名称
    
  • 修改/etc/sysctl.conf

    # 在文件中增加下面内容
    # 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
    vm.max_map_count=655360
    
  • 重新加载

    sysctl -p
    

5)启动es(顺序启动)

cd /opt/module/es/
#启动
bin/elasticsearch
#后台启动
bin/elasticsearch -d

关闭防火墙(按需操作)

#暂时关闭防火墙
systemctl stop firewalld
#永久关闭防火墙
systemctl enable firewalld.service #打开放货抢永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

Windows集群搭建

1)创建 elasticsearch-cluster 文件夹,在内部复制三个 elasticsearch 服务

2)修改集群文件目录中每个节点的 config/elasticsearch.yml 配置文件

3)启动集群(启动前先删除每个节点中的 data 目录中所有内容),bin/elasticsearch.bat, 启动节点服务。

config/elasticsearch.yml

  • node1

    #节点 1 的配置信息:
    #集群名称,节点之间要保持一致
    cluster.name: my-elasticsearch
    #节点名称,集群内要唯一
    node.name: es-1001
    node.master: true
    node.data: true
    
    #ip 地址
    network.host: localhost
    #http 端口
    http.port: 1001
    #tcp 监听端口
    transport.tcp.port: 9301
    
    #ES查找节点模块(第一台机器不需要加)
    #discovery.seed_hosts: ["localhost:9301", "localhost:9302","localhost:9303"]
    #discovery.zen.fd.ping_timeout: 1m
    #discovery.zen.fd.ping_retries: 5
    #集群内的可以被选为主节点的节点列表
    #cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
    
    #跨域配置
    #action.destructive_requires_name: true
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
  • node2

     #节点 2 的配置信息:
    #集群名称,节点之间要保持一致
    cluster.name: my-elasticsearch
    #节点名称,集群内要唯一
    node.name: es-1002
    node.master: true
    node.data: true
    
    #ip 地址
    network.host: localhost
    #http 端口
    http.port: 1002
    #tcp 监听端口
    transport.tcp.port: 9302
    
    #ES查找节点模块(第一台机器不需要加)
    discovery.seed_hosts: ["localhost:9301"]
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    
    #集群内的可以被选为主节点的节点列表
    #cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
    
    #跨域配置
    #action.destructive_requires_name: true
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
  • node3

    #节点 3 的配置信息:
    #集群名称,节点之间要保持一致
    cluster.name: my-elasticsearch
    #节点名称,集群内要唯一
    node.name: es-1003
    node.master: true
    node.data: true
    
    #ip 地址
    network.host: localhost
    #http 端口
    http.port: 1003
    #tcp 监听端口
    transport.tcp.port: 9303
    
    #ES查找节点模块(第一台机器不需要加)
    discovery.seed_hosts: ["localhost:9301","localhost:9302"]
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    
    #集群内的可以被选为主节点的节点列表
    #cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
    
    #跨域配置
    #action.destructive_requires_name: true
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

标签:node,http,部署,xxx,cluster,Elasticsearch7,集群,节点,es
From: https://www.cnblogs.com/lihw/p/17703145.html

相关文章

  • Knative Serving v1.11.0 部署
    先决条件如果集群中只有一个节点,则至少需要6个CPU、6GB内存和30GB磁盘存储。如果集群中有多个节点,则每个节点至少需要2个CPU、4GB内存和20GB磁盘存储。您有一个使用Kubernetesv1.24或更高版本的集群。部署KnativeServing流程1.部署Service自定义资源......
  • GLM-130B 部署 - 8*3090-24G
    官方文档镜像要求A100-40G-8卡硬件配置:软件配置:1.准备由于恒源云暂时缺少硬件资源,此次部署使用8*3090-24G配置(需要量化int8):注意镜像选择,pytorch版本选择1.13,不要选择2.0,2.0会产生不兼容的情况。同时需要注意扩容,否则模型存放不够空间创建实例后,打开终端,下载模型到临......
  • Liunx下部署hangfire无法打开面板
    若没有hangfir面板的过滤器IDashboardAuthorizationFilter,在打开/hangfire路径时请求会返回401未授权。需要添加类继承IDashboardAuthorizationFilter过滤器类publicclassCustomerHangfireDashboardFilter:IDashboardAuthorizationFilter{publicboolAut......
  • 为什么企业需要视频会议私有部署?
    随着全球化和数字化的快速发展,企业必须不断适应新的沟通方式,以满足不断变化的市场需求。互联网技术的普及使得远程办公成为可能,这意味着员工分散在不同的地理位置,需要一种高效的方式来进行协作和沟通。此外,全球供应链的日益复杂也使企业需要与合作伙伴和客户保持紧密联系,以确保生产......
  • 更改Eclipse下Tomcat的部署目录和自定义user library
     更改Eclipse下Tomcat的部署目录http://kingxss.iteye.com/blog/1741438自定义userlibrary......
  • 如何保护数据安全?企业该从部署SSL证书开始
    数字化时代,大数据开始蔓延到各行各业,影响着生活的方方面面。在犹如“皇帝穿新衣”般透明的大数据时代,数据泄露无孔不入,存在问题层出不穷,未知的漏洞隐患、安全边界的模糊、新的网络攻*手段、个人隐私的无处藏身等一系列问题不断出现。因此,如何保护个人隐私数据的安全是一个巨大的挑......
  • 部署openldap服务并配置jumpsever、jira、mindoc、gitlab、jenkins集成ldap认证
    背景公司各种信息化系统越来越多,需要记住的用户账号也越来越多,人员入职离职就要分别在不同的各种系统上进行添加和删除比较繁锁,急需要一个可以统一认证的服务,于是就开始研究ldap,ldap中openldap是开源的方便使用,于是花了大概2个月时间才把标题上面的这几个服务全部调通,以下记录配置......
  • 本地部署Jellyfin影音服务器 - 公网远程影音库
    1.前言随着移动智能设备的普及,各种各样的使用需求也被开发出来,从最早的移动听音乐、看图片(MP3时代),到之后的移动视频需求(MP4时代)到现在的移动流媒体需求(智能手机看视频)。但当我们习惯这些需求后,忽然发现自己不知不觉间成了待割的韭菜(3台设备就要加钱)。作为一颗倔强的韭菜,自然不会甘......
  • python的flask框架部署网页过程报错及解决方案
    python安装好flask框架之后,创建一个flask的项目,运行发生以下报错UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xa1inposition4:invalidstartbyte原因是读取flask库源码的时候系统默认未使用‘utf-8’格式win10电脑->控制面板->区域->管理->更改系统区域设置......
  • 部署 AJ-Report 发行版
    gitee项目:AJ-Report:AJ-Report是一个完全开源,拖拽编辑的可视化设计工具。三步快速完成大屏:配置数据源---->写SQL配置数据集---->拖拽生成大屏。让管理层随时随地掌控业务动态,让每个决策都有数据支撑。(gitee.com)官方部署文档:AJ-Report(beliefteam.cn)发行版下载地址:AJ-Repor......