zoukankan      html  css  js  c++  java
  • 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。
      • 该节点不能作为master节点,也不能作为data节点。
      • 可以作为客户端节点,用于响应用户的请求,把请求转发到其他节点
    • 部落节点
      • 当一个节点配置tribe.*的时候,它是一个特殊的客户端,它可以连接多个集群,在所有连接的集群上执行搜索和其他操作

    二、集群搭建步骤

    三台机器的环境配置(root下操作)

    [root@slave1 ~]# vim /etc/security/limits.conf
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    
    [root@slave1 ~]# vim /etc/sysctl.conf
    vm.max_map_count=655360
    [root@slave1 ~]# sysctl -p
    

    2.1、单节点安装(省略)

    # 参考
    https://www.cnblogs.com/hsyw/p/14090372.html
    

    2.2、分发ElasticSearch

    # 分发之前先删除数据
    /app/elasticsearch/data
    rm -rf nodes/
    
    # 分发
    [root@master ~]# cd /app/
    [root@master app]# scp -rp elasticsearch 192.168.1.112:/app/
    [root@master app]# scp -rp elasticsearch 192.168.1.113:/app/
    
    # 在另外2台机器添加用户
    [root@slave1 app]# useradd elsearch
    [root@slave2 app]# useradd elsearch
    
    #另外2台机器修改文件用户组
    [root@slave1 ~]# chown elsearch.elsearch -R /app/elasticsearch/
    [root@slave2 ~]# chown elsearch.elsearch -R /app/elasticsearch/
    

    2.3、修改配置文件

    2.3.1、master节点上
    # 第一次做集群的朋友建议一个个改,后面熟悉了直接scp改node.name的名字就完事了
    [root@master ~]# su - elsearch
    [elsearch@master ~]$ vim /app/elasticsearch/config/elasticsearch.yml
    # 以下内容修改为
    cluster.name: es-cluster
    node.name: node01
    node.master: true
    node.data: true
    network.host: 0.0.0.0
    discovery.zen.ping.unicast.hosts: ["192.168.1.111","192.168.1.112","192.168.1.113"]
    # 最小节点数
    discovery.zen.minimum_master_nodes: 2
    # 跨域专用
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    2.3.2、slave1节点上
    [root@slave1 ~]# su - elsearch
    [elsearch@slave1 ~]$ vim /app/elasticsearch/config/elasticsearch.yml
    # 以下内容修改为
    cluster.name: es-cluster
    node.name: node02
    node.master: true
    node.data: true
    network.host: 0.0.0.0
    discovery.zen.ping.unicast.hosts: ["192.168.1.111","192.168.1.112","192.168.1.113"]
    discovery.zen.minimum_master_nodes: 2
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    2.3.3、slave2节点上
    [root@master ~]# su - elsearch
    [elsearch@slave1 ~]$ vim /app/elasticsearch/config/elasticsearch.yml
    # 以下内容修改为
    cluster.name: es-cluster
    node.name: node02
    node.master: true
    node.data: true
    network.host: 0.0.0.0
    discovery.zen.ping.unicast.hosts: ["192.168.1.111","192.168.1.112","192.168.1.113"]
    discovery.zen.minimum_master_nodes: 2
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    2.4、启动集群(三节点操作)

    # 前台运行
    /app/elasticsearch/bin/elasticsearch
    
    # 后台运行
    /app/elasticsearch/bin/elasticsearch &
    

    2.5、查看集群状态

    三、分片和副本

    ​ 为了将数据添加到Elasticsearch,我们需要索引(index)——一个存储关联数据的地方。实际上,索引只是一个用来指向一个或多个分片(shards)的“逻辑命名空间(logical namespace)”.

    • 一个分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。
    • 我们需要知道是分片就是一个Lucene实例,并且它本身就是一个完整的搜索引擎。应用程序不会和它直接通
      信。
    • 分片可以是主分片(primary shard)或者是复制分片(replica shard)。
    • 索引中的每个文档属于一个单独的主分片,所以主分片的数量决定了索引最多能存储多少数据。
    • 复制分片只是主分片的一个副本,它可以防止硬件故障导致的数据丢失,同时可以提供读请求,比如搜索或者从别的shard取回文档。
    • 当索引创建完成的时候,主分片的数量就固定了,但是复制分片的数量可以随时调整。
  • 相关阅读:
    VC++对话框笔记
    STL中用erase()方法遍历删除元素
    VC++中不小心选错工程类型的解决办法
    directX中常用的数学计算
    VC++中string、char* 转换为LPCSTR
    判断空间上点是否在直线上
    vc6.0插件
    VC++常用定义(如SAFE_DELETE等)
    关于控件的AutoSize属性影响界面布局的问题解决
    C#判断日期是否正确(1900~今年,月份,天数)
  • 原文地址:https://www.cnblogs.com/hsyw/p/14090723.html
Copyright © 2011-2022 走看看