ES-在集群中加入节点

查看分片信息

FengZhendeMacBook-Pro:nacos FengZhen$ curl 'localhost:9200/_cat/shards?v'
index shard prirep state docs store ip node
music p STARTED 130b 127.0.0.1 Feng
music r UNASSIGNED
music p STARTED .1kb 127.0.0.1 Feng
music r UNASSIGNED
music p STARTED 130b 127.0.0.1 Feng
music r UNASSIGNED
music p STARTED 130b 127.0.0.1 Feng
music r UNASSIGNED
music p STARTED 130b 127.0.0.1 Feng
music r UNASSIGNED

Music索引有5个主分片,而且都是激活的。未分配的分片代表为该索引配置的一组副本分片。因为只有1个节点,所以这些副本分片尚未分配

多数ES API会返回JSON,但是cat这组API是个特例。还有很多其他的API,它们对于获取集群某个时间点的相关信息很有帮助,其格式对于人或者脚本而言都是很容易解析的。
未分配的副本分片导致集群状态变为黄色。这意味着所有主分片都就绪了,但是并非所有副本分片都就绪了。如果主分片缺失,集群就会显示红色,以提示至少有1个索引是不完整的。如果所有的副本分片都被分配了,集群就是绿色的,以提示所有一切都在正常工作。

启动第二个节点

从另一个不同的终端,运行/bin/elasticsearch。这会在同一台机器上启动另一个ES实例。通常需要在不同的机器上启动新的节点,来充分利用额外的处理能力。

0.修改config/elasticsearch.yml配置文件,将各节点的cluster.name(集群名称)设置成相同名称;设置node.name(节点名称)

1.启动之后,看第二个节点的日志,如下

[-- ::,][INFO ][cluster.service ] [Feng_1] detected_master {Feng}{RbRBUbuSR7SfEyQvg9OJSQ}{127.0.0.1}{127.0.0.1:}, added {{Feng}{RbRBUbuSR7SfEyQvg9OJSQ}{127.0.0.1}{127.0.0.1:},}, reason: zen-disco-receive(from master [{Feng}{RbRBUbuSR7SfEyQvg9OJSQ}{127.0.0.1}{127.0.0.1:}])

Feng是第一个节点的名字,Feng1是第二个节点的名字。第二个节点通过多播侦测到第1个节点,并加入集群。第1个节点也是集群的主节点(master),这意味着它将负责保存集群中有哪些节点、分片位于哪里等这样的信息。这种信息称为集群状态(cluster state),并被复制到其他节点。如果主节点宕机,集群将会选举出另一个节点替代原有的主节点。

2.第一个节点日志信息如下

[-- ::,][INFO ][cluster.service ] [Feng] added {{Feng_1}{ZyK2Y6fVQNWXFVWhiYz3Lg}{127.0.0.1}{127.0.0.1:},}, reason: zen-disco-join(join from node[{Feng_1}{ZyK2Y6fVQNWXFVWhiYz3Lg}{127.0.0.1}{127.0.0.1:}])
[-- ::,][INFO ][cluster.routing.allocation] [Feng] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[music][]] ...]).

可发现集群健康状态由yellow变为了green,这是因为副本分片有地方放了。

3.再次查看分片情况;

FengZhendeMacBook-Pro:nacos FengZhen$ curl 'localhost:9200/_cat/shards?v'
index shard prirep state docs store ip node
music p STARTED 159b 127.0.0.1 Feng
music r STARTED 159b 127.0.0.1 Feng_1
music p STARTED .2kb 127.0.0.1 Feng
music r STARTED .2kb 127.0.0.1 Feng_1
music p STARTED 159b 127.0.0.1 Feng
music r STARTED 159b 127.0.0.1 Feng_1
music p STARTED 159b 127.0.0.1 Feng
music r STARTED 159b 127.0.0.1 Feng_1
music p STARTED 159b 127.0.0.1 Feng
music r STARTED 159b 127.0.0.1 Feng_1

此时发现所有分片都已被分配。

随着更多的节点加入,机器将使用端口9201、9202等。对于节点之间的通信,ES使用端口9300、9301等。需要在防火墙里设置允许访问这些端口。

扩展选项

1.修改副本分片的数量:副本分片可以动态的更新,但是这种扩展方式只能增加集群对于并发搜索的处理量,因为搜索请求以round-robin的轮询方式,被发送到同一分片的多个副本。索引性能仍然保持不变,因为新的数据必须被所有分片处理。同样,单个的搜索将在单独的一组分片上运行,所以增加副本分片不会有什么帮助。
2.创建拥有更多分片的索引:这意味着重新索引数据,因为主分片的数量无法动态修改。
3.增加更多的索引:某些数据很容易被设计为使用多索引的模式。例如:如果索引日志,可以将每天的日志放入一个单独的索引。

Elasticsearch-集群增加节点的更多相关文章

  1. Kafka 1.0.0集群增加节点

    原有环境 主机名 IP 地址 安装路径 系统 sht-sgmhadoopdn-01 172.16.101.58 /opt/kafka_2.12-1.0.0 /opt/kafka(软连接) CentOS ...

  2. Docker swarm集群增加节点和删除节点

    Docker swarm集群增加节点 docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm j ...

  3. elasticsearch 集群、节点、索引、分片、副本概念

    原文链接: https://www.jianshu.com/p/297e13045605 集群(cluster): 由一个或多个节点组成, 并通过集群名称与其他集群进行区分 节点(node): 单个 ...

  4. Redis集群增加节点和删除节点

    本文主要是承接上一篇文章Redis集群的离线安装成功以后,我们如何进行给集群增加新的主从节点(集群扩容)以及如何从集群中删除节点(集群缩容),也就是集群的伸缩,集群伸缩的原理是控制虚拟槽和数据在节点之 ...

  5. kubeadm 生成的token过期后,集群增加节点

    通过kubeadm初始化后,都会提供node加入的token: You should now deploy a pod network to the cluster. Run "kubect ...

  6. elasticsearch集群添加节点

    最简配置文件: cluster.name:  your_cluster_name node.name:  your_ip network.host: 0.0.0.0 http.port: your_p ...

  7. elasticsearch集群内部节点超时解决

    默认配置为:节点每隔1s同master发送1次心跳,超时时间为30s,测试次数为3次,超过3次,则认为该节点同master已经脱离了.以上为elasticsearch的默认配置.在实际生产环境中,每隔 ...

  8. Hadoop集群 增加节点/增加磁盘

    在虚拟机中新建一个机器. 设置静态IP 将修改/etc/hosts 192.168.102.10 master 192.168.102.11 slave-1 192.168.102.12 slave- ...

  9. Elasticsearch 集群和索引健康状态及常见错误说明

    之前在IDC机房线上环境部署了一套ELK日志集中分析系统, 这里简单总结下ELK中Elasticsearch健康状态相关问题, Elasticsearch的索引状态和集群状态传达着不同的意思. 一.  ...

  10. 400+节点的 Elasticsearch 集群运维

    本文首发于InfoQ https://www.infoq.cn/article/1sm0Mq5LyY_021HGuXer 作者:Anton Hägerstrand 翻译:杨振涛 目录: 数据量 版本 ...

随机推荐

  1. django admin登陆页出现TypeError at /admin/

    出现此错误的原因主要是,添加多条URL时urlpatterns后面的序列符号写错了,检查所有的urls.py文件将{}改为[]. error: urlpatterns = {} right: urlp ...

  2. 【leetcode】1273. Delete Tree Nodes

    题目如下: A tree rooted at node 0 is given as follows: The number of nodes is nodes; The value of the i- ...

  3. 【leetcode】341. Flatten Nested List Iterator

    题目如下: Given a nested list of integers, implement an iterator to flatten it. Each element is either a ...

  4. 【leetcode】1247. Minimum Swaps to Make Strings Equal

    题目如下: You are given two strings s1 and s2 of equal length consisting of letters "x" and &q ...

  5. k8s-for批量拉取国内镜像并做tag标签

    kubeadm config images list  ##查看所需镜像 如果是1.15 或者是其他就需要改改 又或者是下面的国内的镜像地址不能用了 百度完改改就ok   #!/bin/bash im ...

  6. @Data注解使用后get set报错解决方法

    Maven项目中已经导入相关的lombok.jar包但是使用后仍提示无set/get方法 .在idea中安装如下插件,安装后重启idea可用不报错. 转载于:https://www.cnblogs.c ...

  7. PHP基础回顾

    变量:声明变量以$开始,变量名可以用中文但是不要用:不能使用特殊字符,比如@,下划线除外:变量名区分大小写.可变变量 $a = b; $b = c; => $$a = c;  理论上$可以无限使 ...

  8. ReactJS 结合 antd-mobile 开发 h5 应用基本配置

    在 ReactJS 较为初级的使用 antd-mobile 使用时候直接加载 node_modules 文件中的相关 CSS,这个使用方法效率低:更高明的方法则按需加载,需要设置如下: 在 packa ...

  9. Java并发编程的艺术笔记(七)——CountDownLatch、CyclicBarrier详解

    一.等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作,像加强版的join.(t.join()是等待t线程完成) 例: (1)开启多个线程 ...

  10. SQL查询时踩得一些坑

    1.左右连接: left join:LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替. inner join: 内连接是最 ...