ES7.6.X集群配置

1. elasticsearch基本配置

elasticsearch集群重要的配置文件有两个:
elasticsearch.yml:elasticsearch集群的基本配置
jvm.options:jvm选项配置

1.1 elasticsearch.yml

es集群层级的配置仅由推选为主节点的elasticsearch.yml配置文件决定(优先级低于url动态配置),当主节点发生改变时,集群的配置也会随之改变,所以通常集群层面的配置,每个节点的yml文件都做相同设置。

Cluster:集群配置
cluster.name:elasticsearch集群名

Node:节点配置
node.name:节点名

node.master:是否允许成为主节点:true/false,默认为true

node.data:是否允许成为数据节点:true/false,默认为true

Paths:路径配置
path.data:数据存放路径

path.logs:日志存放路径

Memory:内存配置
bootstrap.memory_lock:是否锁定内存空间:true/false

Network:网络配置
network.host:用于同时设置bind_host和publish_host两个参数

network.bind_host:设置绑定的ip地址,支持ipv4和ipv6,默认为0.0.0.0

network.publish_host:设置该节点与其它节点交互的ip地址,通常为vpcIP,如果不设置程序会自动判断

http.enabled:设置是否使用http协议对外提供服务:true/false,默认为true,开启

http.port:设置对外服务的http端口,默认为9200

http.max_content_length:设置内容的最大容量,默认100mb

transport.tcp.port:设置节点之间交互的tcp端口,默认是9300

transport.tcp.compress:设置是否压缩tcp传输时的数据:true/false,默认为false,不压缩

Discovery:路由发现配置
discovery.seed_hosts:节点路由表

cluster.initial_master_nodes:创建集群时的初始主节点列表,创建完成后失效

Various:杂项配置

 

1.2 jvm.options

jvm.options需要配置的地方主要是:

##JVM heap size
-Xms2g
-Xmx2g

根据机器内存的实际大小进行配置,标准建议是:
(1)把50%的内存分配给elasticsearch;
(2)分配的内存不超过32G(jvm在内存小于32G时会采用一个内存对象指针压缩技术,可以占用较少带宽)

2. 通过api配置集群(优先级高于elasticsearch.yml的配置)

elasticsearch允许通过RESTful api的settings来动态设置集群属性,包括transient和persistent两种方式:

  • transient 临时:这些设置在集群重启之前一直会生效。一旦整个集群重启,这些设置就被清除;
  • persistent 永久:这些设置永久保存,除非再次被手动修改。是将修改持久化到文件中,重启之后也不影响。
    PUT /_cluster/settings
    {
      "persistent" : {
          "discovery.zen.minimum_master_nodes" : 2  //这个永久设置会存在索引里,全集群重启时依然生效。
      },
      "transient" : {
          "indices.store.throttle.max_bytes_per_sec" : "50mb"  // 这个临时设置会在下一次全集群重启后被移除。
      }
    }
    允许api动态配置的参数有:
    • cluster.max_shards_per_node : es集群允许存放的最大分片数量,默认为1000

3. 节点发现机制

3.1 集群形成机制

elasticsearch是以主节点群(node.master=true)为核心构成的集群,主节点会保存所有其他主节点信息(存放在data目录),且所有主节点记录的主节点信息一致

初始创建集群(即data目录为空)时,每个节点的主节点记录由参数cluster.initial_master_nodes决定,由discovery.seed_hosts找到其他主节点。

注意

  1. 一个或多个主节点形成集群满足的条件为:在形成集群的等待时间里,相互之间通过discovery.seed_hosts找到了对方,且其中一个主节点找到的主节点数占该节点cluster.initial_master_nodes列表的比例大于1/2(其中一个满足了条件就会形成集群,其他节点节点自动加入!!!)

  2. 若每个节点配置的cluster.initial_master_nodes包含discovery.seed_hosts无法找到的节点且无法找到的节点数目大于等于1/2,则该节点再也不能形成集群(即使之后有机会满足条件也不能形成集群),只能以add的形式加入其他集群

  3. 若在创建集群时同时形成了两个集群,若在形成集群阶段有连接两个集群的中间主节点加入,则该节点只能加入其中一个集群,且两个集群将相互独立;若超过等待时间后有中间主节点加入,则两个集群同时报错

  4. cluster.initial_master_nodes在elasticsearch节点未加入任何集群的时候才发挥作用,形成集群后,该参数须保持不变或跟集群主机点一致(cluster.initial_master_nodes允许添加多余的无用节点,但不能删除有用的节点)

3.2 节点加入机制

节点通过discovery.seed_hosts找到在该集群中的主节点,即可加入集群(每个主机点会先经历形成集群的过程,
在形成集群后,如果某个节点重启:

  1. 主节点:以data目录下的集群主节点信息为依据构建主节点群

  2. 若该节点是通过discovery.seed_hosts列表的中间节点加入集群的,且discovery.seed_hosts列表中的中间节点已经关闭,则该节点无法加入集群

  3. 若该节点是初始主节点,其他主节点通过add方式加入集群,当该节点关闭集群依旧没问题时,当该节点启动时,若discovery.seed_hosts无中间节点连接其加入集群,则该节点依旧无法加入集群

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值