zoukankan      html  css  js  c++  java
  • 【ElasticSearch】 ElasticSearch集群安装(八)

    集群节点

      ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点 通过node.name指定节点的名称。

      在Elasticsearch中,节点的类型主要有4种:

      master节点

    • 配置文件中node.master属性为true(默认为true),就有资格被选为master节点。     
    • master节点用于控制整个集群的操作。比如创建或删除索引,管理其它非master节点等。

      data节点

    • 配置文件中node.data属性为true(默认为true),就有资格被设置成data节点。
    • data节点主要用于执行数据相关的操作。比如文档的CRUD。

      客户端节点

    • 配置文件中node.master属性和node.data属性均为false。
    • 可以作为客户端节点,用于响应用户的请求,把请求转发到其他节点

      部落节点

    • 当一个节点配置tribe.*的时候,它是一个特殊的客户端,它可以连接多个集群,在所有连接的集群上执行 搜索和其他操作。

     搭建集群

      环境

        系统:CentOS 7.4

        ES版本:7.6.1

      由于es安装需要配置一些系统参考,安装集群前,请保障单机版的ES安装成功,单机版参考:【ElasticSearch】 ElasticSearch安装(一)

      示例说明:本例由于资源有限,ES集群安装三个节点在同一台服务器上,正式安装可将节点分配到不同机器上

      架构如下:

          

      1、新建一个ES集群目录

        命令:mkdir /data/soft/elasticsearch-cluster

      2、解压es到集群目录中

        命令:tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /data/soft/elasticsearch-cluster

      3、进来集群目录,拷贝三分实例

        命令:cd /data/soft/elasticsearch-cluster

        命令:cp -rf elasticsearch-7.6.1 elasticsearch-7.6.1-19201

        命令:cp -rf elasticsearch-7.6.1 elasticsearch-7.6.1-19202

        命令:cp -rf elasticsearch-7.6.1 elasticsearch-7.6.1-19203

      4、编辑三个节点的配置信息

        node-1配置信息如下:

     1 # ---------------------------------- Cluster -----------------------------------
     2 # 设置集群名称,集群内所有节点的名称必须一致。
     3 cluster.name: my-application
     4 
     5 # ------------------------------------ Node ------------------------------------
     6 # 节点名称
     7 node.name: node-1
     8 # 表示该节点会不会作为主节点,true表示会;false表示不会
     9 node.master: true
    10 # 当前节点是否用于存储数据,是:true、否:false
    11 node.data: true
    12 
    13 # ----------------------------------- Paths ------------------------------------
    14 # 索引数据存放的位置
    15 #path.data: /path/to/data
    16 # 日志文件存放的位置
    17 #path.logs: /path/to/logs
    18 
    19 # ----------------------------------- Memory -----------------------------------
    20 # 需求锁住物理内存,是:true、否:false
    21 #bootstrap.memory_lock: true
    22 
    23 # ---------------------------------- Network -----------------------------------
    24 # 绑定IP地址
    25 network.host: 0.0.0.0
    26 
    27 # 绑定到传入HTTP请求的端口。接受单个值或范围。如果指定了范围,则该节点将绑定到该范围中的第一个可用端口,
    28 # 默认 9200-9300
    29 http.port: 19201
    30 # 用于绑定节点之间通信的端口。接受单个值或范围。如果指定了范围,则该节点将绑定到该范围中的第一个可用端口,
    31 # 默认 9300-9400
    32 transport.tcp.port: 19301
    33 
    34 # --------------------------------- Discovery ----------------------------------
    35 # 提供群集中符合master资格的节点的地址列表。也可以是包含用逗号分隔的地址的单个字符串。
    36 # 该节点启动时,发现的主机的初始列表
    37 # 每个地址的格式为host:port或host。
    38 discovery.seed_hosts: ["127.0.0.1:19301", "127.0.0.1:19302", "127.0.0.1:19303"]
    39 
    40 # 设置全新群集中符合master要求的节点的初始集合。
    41 # 默认情况下,该列表为空,这意味着该节点希望加入已经被引导的集群
    42 cluster.initial_master_nodes: ["node-1"]

        node-2配置信息如下:

     1 # ---------------------------------- Cluster -----------------------------------
     2 # 设置集群名称,集群内所有节点的名称必须一致。
     3 cluster.name: my-application
     4 
     5 # ------------------------------------ Node ------------------------------------
     6 # 节点名称
     7 node.name: node-2
     8 # 表示该节点会不会作为主节点,true表示会;false表示不会
     9 node.master: true
    10 # 当前节点是否用于存储数据,是:true、否:false
    11 node.data: true
    12 
    13 # ----------------------------------- Paths ------------------------------------
    14 # 索引数据存放的位置
    15 #path.data: /path/to/data
    16 # 日志文件存放的位置
    17 #path.logs: /path/to/logs
    18 
    19 # ----------------------------------- Memory -----------------------------------
    20 # 需求锁住物理内存,是:true、否:false
    21 #bootstrap.memory_lock: true
    22 
    23 # ---------------------------------- Network -----------------------------------
    24 # 绑定IP地址
    25 network.host: 0.0.0.0
    26 
    27 # 绑定到传入HTTP请求的端口。接受单个值或范围。如果指定了范围,则该节点将绑定到该范围中的第一个可用端口,
    28 # 默认 9200-9300
    29 http.port: 19202
    30 # 用于绑定节点之间通信的端口。接受单个值或范围。如果指定了范围,则该节点将绑定到该范围中的第一个可用端口,
    31 # 默认 9300-9400
    32 transport.tcp.port: 19302
    33 
    34 # --------------------------------- Discovery ----------------------------------
    35 # 提供群集中符合master资格的节点的地址列表。也可以是包含用逗号分隔的地址的单个字符串。
    36 # 该节点启动时,发现的主机的初始列表
    37 # 每个地址的格式为host:port或host。
    38 discovery.seed_hosts: ["127.0.0.1:19301", "127.0.0.1:19302", "127.0.0.1:19303"]
    39 
    40 # 设置全新群集中符合master要求的节点的初始集合。
    41 # 默认情况下,该列表为空,这意味着该节点希望加入已经被引导的集群
    42 cluster.initial_master_nodes: ["node-1"]
    View Code

        node-3配置信息如下:

     1 # ---------------------------------- Cluster -----------------------------------
     2 # 设置集群名称,集群内所有节点的名称必须一致。
     3 cluster.name: my-application
     4 
     5 # ------------------------------------ Node ------------------------------------
     6 # 节点名称
     7 node.name: node-3
     8 # 表示该节点会不会作为主节点,true表示会;false表示不会
     9 node.master: true
    10 # 当前节点是否用于存储数据,是:true、否:false
    11 node.data: true
    12 
    13 # ----------------------------------- Paths ------------------------------------
    14 # 索引数据存放的位置
    15 #path.data: /path/to/data
    16 # 日志文件存放的位置
    17 #path.logs: /path/to/logs
    18 
    19 # ----------------------------------- Memory -----------------------------------
    20 # 需求锁住物理内存,是:true、否:false
    21 #bootstrap.memory_lock: true
    22 
    23 # ---------------------------------- Network -----------------------------------
    24 # 绑定IP地址
    25 network.host: 0.0.0.0
    26 
    27 # 绑定到传入HTTP请求的端口。接受单个值或范围。如果指定了范围,则该节点将绑定到该范围中的第一个可用端口,
    28 # 默认 9200-9300
    29 http.port: 19203
    30 # 用于绑定节点之间通信的端口。接受单个值或范围。如果指定了范围,则该节点将绑定到该范围中的第一个可用端口,
    31 # 默认 9300-9400
    32 transport.tcp.port: 19303
    33 
    34 # --------------------------------- Discovery ----------------------------------
    35 # 提供群集中符合master资格的节点的地址列表。也可以是包含用逗号分隔的地址的单个字符串。
    36 # 该节点启动时,发现的主机的初始列表
    37 # 每个地址的格式为host:port或host。
    38 discovery.seed_hosts: ["127.0.0.1:19301", "127.0.0.1:19302", "127.0.0.1:19303"]
    39 
    40 # 设置全新群集中符合master要求的节点的初始集合。
    41 # 默认情况下,该列表为空,这意味着该节点希望加入已经被引导的集群
    42 cluster.initial_master_nodes: ["node-1"]
    View Code

      5、依次启动node-1、node-2、node-3

    查看集群

      1、使用elasticsearch-head插件连接,ES集群

        

        星代表master(主节点)

        圆代表data(数据节点)

        roles角色:master(主节点)、data(数据节点)、ingest(提取节点)、ml(机器学习节点)

      2、创建索引

        

        效果如下:

        

      3、查询集群状态:/_cluster/health

         

        集群状态的三种颜色:

      • green:所有主要分片和复制分片都可用
      • yellow: 所有主要分片可用,但不是所有复制分片都可用
      • red: 不是所有的主要分片都可用
  • 相关阅读:
    shell基础--变量的数值计算
    shell基础--字符串和变量的操作
    shell基础--shell特殊变量
    Asp.net MVC 控制器扩展方法实现jsonp
    ASP.NET web api 跨域请求
    asp.net Web API简单的特性路由配置
    ASP.Net Web API 输出缓存 转载 -- Output caching in ASP.NET Web API
    基础拾遗 C# Json 与对象相互转换
    内存溢出和内存泄漏
    软件测试面试题(一)
  • 原文地址:https://www.cnblogs.com/h--d/p/13121119.html
Copyright © 2011-2022 走看看