Elasticsearch集群

网友投稿 250 2022-11-16

Elasticsearch集群

1.概念

节点(node):一个节点是集群中的一台服务器,是集群的一部分。它存储数据,参与集群的索引和搜索功能。集群中有一个为主节点,主节点通过ES内部选举产生。集群(cluster):一组节点组织在一起称为一个集群,它们共同持有整个的数据,并一起提供索引和搜索功能。分片(shards):ES可以把完整的索引分成多个分片,分别存储在不同的节点上。副本(replicas):ES可以为每个分片创建副本,提高查询效率,保证在分片数据丢失后的恢复。

注意:注:分片的数量只能在索引创建时指定,索引创建后不能再更改分片数量,但可以改变副本的数 量。 为保证节点发生故障后集群的正常运行,ES不会将某个分片和它的副本存在同一台节点上。

2.Linux搭建Elasticsearch

准备一台搭载有CentOS6系统的虚拟机,使用XShell连接虚拟机关闭防火墙,方便kibana连接集群:配置最大可创建文件数大小#打开系统文件: vim /etc/sysctl.conf#添加以下配置: vm.max_map_count=655360#配置生效: sysctl -p由于ES不能以root用户运行,我们需要创建一个非root用户,此处创建一个名为es的用户:#创建用户: useradd es搭建ES集群1.使用rz命令将linux版的ES上传至虚拟机2.解压第一个ES节点:3.#解压: tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz -C /opt/app4.#重命名: mv elasticsearch-7.12.1 elasticsearch15.#移动文件夹: mv elasticsearch1 /opt/6.#es用户取得该文件夹权限: chown -R es:es /usr/local/elasticsearch17.重复1-6步骤,分别命名elasticsearch1 elasticsearch2 elasticsearch3,搭建3个节点集群8.修改三个ES节点的elasticsearch.yml文件:

#集群名称,保证唯一cluster.name: my_elasticsearch#节点名称,必须不一样 node.name: node1#可以访问该节点的ip地址 network.host: 0.0.0.0#该节点服务端口号 9200#集群间通信端口号 transport.tcp.port: 9301#候选主节点的设备地址 discovery.seed_hosts: ["node0:9301","node0:9302","node0:9303"]#候选主节点的节点名 cluster.initial_master_nodes: ["node1", "node2","node3"]

查看集群状态

# 查看集群健康状态 GET /_cat/health?v # 查看索引状态 GET /_cat/indices?v # 查看分片状态 GET /_cat/shards?v

3.故障应对&水平扩容

关闭一个节点,可以发现ES集群可以自动进行故障应对。重新打开该节点,可以发现ES集群可以自动进行水平扩容。分片数不能改变,但是可以改变每个分片的副本数:

PUT /索引/_settings { "number_of_replicas": 副本数 }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java String之contains方法的使用详解
下一篇:原生JAVA操作 Elasticsearch索引
相关文章

 发表评论

暂时没有评论,来抢沙发吧~