Elasticsearch集群搭建

集群概念

在单台 ES 服务器上,随着一个索引内数据的增多,会产生存储、效 率、安全等问题。

因此引入集群

我们需要将索引拆分成多份,分别放入不同的服务器中,此时这几台服务器维护了同一个索引,我们称这几台服务器为一个 集群 ,其中的每一台服务器为一个 节点 ,每一台服务器中的数据
称为一个 分片。
由于副本机制的存在
此时如果某个节点故障,则会造成集群崩溃,所以每个节点的分片往往还会创建副本 ,存放在 其他节点 中,此时一个节点的崩溃就不会影响整个集群的正常运行。

集群

一组节点组织在一起称为一个集群,它们共同持有整个的数据,并一起提供索引和搜索功能。

节点 

一个节点是集群中的一台服务器,是集群的一部分。它存储数据,参与集群的索引和搜索功能。集群中有一个为主节点,主节点通过ES 内部选举产生。

分片

ES 可以把完整的索引分成多个分片,分别存储在 不同的节点上。

副本

ES 可以为每个分片创建副本,提高查询效率,保证在分片数据丢失后的恢复。
此外
1.分片的数量只能在索引创建时指定,索引创建后不能再更改分片数量,但可以改变副本的数量。

2.为保证节点发生故障后集群的正常运行,ES不会将某个分片和它的副本存在同一台节点上。

 安装第一个节点

1.修改系统进程最大打开文件数

vim /etc/security/limits.conf

# 添加如下内容
es soft nofile 65535
es hard nofile 131072

2.安装

# 解压:
tar -zxvf elasticsearch-8.10.4-linux-x86_64.tar.gz -C /usr/local/
#重命名
mv  elasticsearch-8.10.4  myes1
# 安装 ik 分词器
unzip elasticsearch-analysis-ik-8.10.4.zip -d  /usr/local/myes1/plugins/analysis-ik
# 安装拼音分词器
unzip elasticsearch-analysis-pinyin-8.10.4.zip -d   /usr/local/myes1/plugins/analysis-pinyin
#给当前普通用户取得该文件夹权限:
chown -R es1:es1 /usr/local/myes1

3.修改配置文件

# 打开节点一配置文件:
vim    /usr/local/myes1/config/elasticsearch.yml

加入以下配置

#集群名称,保证唯一
cluster.name: my_elasticsearch
#节点名称,必须不一样
node.name: node1
#可以访问该节点的ip地址
network.host: 0.0.0.0
#该节点服务端口号
http.port: 9200
#集群间通信端口号
transport.port: 9300
#候选主节点的设备地址
discovery.seed_hosts:
["127.0.0.1:9300","127.0.0.1:9301","127.0.0.
1:9302"]
#候选主节点的节点名
cluster.initial_master_nodes:
["node1","node2","node3"]
#关闭安全认证
xpack.security.enabled: false

 4.启动

# 切换为 es 用户:
su es
# 后台启动第一个节点:
ES_JAVA_OPTS = "-Xms512m -Xmx512m"   /usr/local/myes1/bin/elasticsearch -d

另外两节点 操作同上

但在修改elasticsearch.yml配置文件时不一样

第二节点

# 节点名称,必须不一样
node.name : node2
# 该节点服务端口号
http.port : 9201
# 集群间通信端口号
transport.port : 9301
第三节点
# 节点名称,必须不一样
node.name : node3
# 该节点服务端口号
http.port : 9202
# 集群间通信端口号
transport.port : 9302

验证:

访问

http://虚拟机ip:9200/_cat/nodes

出现下列信息,则代表集群成功启动 

如何验证每个节点是否成功启动

curl 虚拟机ip:节点端口号

关闭该节点

1.查看进程

ps -ef |grep elastic

2.杀死该进程

kill -9 进程号 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计Python深度学习游戏推荐系统 Django PySpark游戏可视化 游戏数据分析 游戏爬虫 Scrapy 机器学习 人工智能 大数据毕设

本论文的主要研究内容如下: 了解基于Spark的TapTap游戏数据分析系统的基本架构,掌握系统的开发方法,包括系统开发基本流程、开发环境的搭建、测试与运行等。 主要功能如下: (1)用户管理模块&#xff1a…

vue3 JS 调用 Android 原生方法

在Vue 3中调用Android原生方法通常涉及到WebView与原生代码的交互。你可以使用WebView的JavaScript接口来实现这一点。以下是一个简化的步骤和示例代码: 在Android端,创建一个类继承自WebView并实现JavaScriptInterface。在这个类中,定义一个…

初阶数据结构—排序

第一章:排序的概念及其运用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有…

LIO-SAM编译ubuntu20.04 Noetic

一、下载 mkdir -p ~/lio_sam_ws/src cd ~/lio_sam_ws/src git clone https://github.com/TixiaoShan/LIO-SAM.git cd ..二、编译&&解决报错 catkin_make报错如下 解决方案: 第一步: sudo add-apt-repository ppa:borglab/gtsam-release-4…

云端墨迹:在iCloud上构筑您的个人博客或网站内容存储堡垒

云端墨迹:在iCloud上构筑您的个人博客或网站内容存储堡垒 在数字化时代,个人博客和网站成为表达思想、分享知识和展示创意的重要平台。iCloud作为苹果公司提供的云服务,提供了一个安全、可靠且易于使用的存储解决方案,让您可以在…

数学建模美赛经验小结

图片资料来自网络所听讲座,感谢分享!

网络编程的学习之udp

Udp编程过程 Sento不会阻塞 实现聊天室效果 上线 聊天 下线 服务端需要一个地址,去保留名字和ip地址 交互的时候发结构体 下面这个宏只能在c语言里使用 ser.sin_port htons(50000); 上面是端口号50000以上,两边要一样 这里是不要让udp发的太快&am…

CleanCode、安全编码规范

Clean Code 规范 Clean Code 是由 Robert C. Martin 提出的编写高质量代码的原则。主要包括以下几点 有意义的命名: 命名要准确和清晰,让人一看就知道变量、函数或类的用途。避免使用缩写和难以理解的名称 // 不好的命名 val d: Int 5// 好的命名 v…

顺序结构 ( 三 ) —— 常量和变量 【互三互三】

常量 一、常量概述 常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如123,145.88,m,TRUE等。 1、整型常量:如3、-5、0等。 整型常量是表示整数的常量。有三种表示形式: 1)十进制形式。如9…

Unity Shader学习笔记

Shader类型 类型详情Standard Surface Shader标准表面着色器,基于物理的着色系统,用于模拟各种材质效果,如石头、木材、玻璃、塑料和金属等。Unlit Shader最简单的着色器,不包含光照但包含雾效,只由最基础的Vertex Sh…

【Vision Pro开发】小白开发如何过渡到visionOS开发 - SOP清单

为什么Unity开发者应该考虑学习Vision OS的原生开发,并解释了开发过程中面临的挑战和优势。我整理了一些关键点,对于刚进入这个赛道的小白开发者可以参考: 1. Vision Pro开发平台选择 - 主要有三种选择:原生开发(Xcode+SwiftUI+RealityKit)、Unity开发和WebXR开发 - 原生开…

30. 梯度下降法及其应用

1. 引言 在深度学习中,损失函数的求解是一个关键步骤。损失函数通常没有解析解,因此需要通过最优化算法来逼近求解。其中,梯度下降法是最常用的优化算法之一。本文将详细介绍梯度下降法的基本概念、理论基础、及其在深度学习中的应用。 2. …

甄选范文“论基于构件的软件开发方法及其应用”,软考高级论文,系统架构设计师论文

论文真题 基于构作的软件开发 (Component-Based Software Development,CBSD) 是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS (Commercial-Off-the-Shelf)构件,也可以是通过其它途径获得的构件(如自…

命名空间知识点

命名空间基本概念 概念 命名空间是用来组织和重用代码的。 作用 就像是一个工具包,类就像是一件一件的工具,都是申明在命名空间中的。 命名空间的使用 基本语法 namespace 命名空间名 { 类 类 } namespace MyGame {class GameObject{} }namesp…

2970.力扣每日一题7/10 Java(暴力枚举)

博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 目录 解题思路 解题方法 时间复杂度 空间复杂度 Code 解题思路 incre…

图论---无向图中国邮路的实现

开始编程前分析设计思路和程序的整体的框架,以及作为数学问题的性质: 程序流程图: 数学原理: 本质上是找到一条欧拉回路,考虑图中的边权重、顶点的度数以及如何通过添加最少的额外边来构造欧拉回路,涉及到欧…

完善kobj_type结构体

1、实现kobj_type的release函数 #include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h> #include<linux/kobject.h> #include<linux/slab.h>static void dynamic_kobj_release(struct kobject *kobj); struct my_kobject …

链表 OJ(一)

移除链表元素 题目连接&#xff1a; https://leetcode.cn/problems/remove-linked-list-elements/description/ 使用双指针法&#xff0c;开始时&#xff0c;一个指针指向头节点&#xff0c;另一个指针指向头节点的下一个结点&#xff0c;然后开始遍历链表删除结点。 这里要注…

泛型集合:Java中的类型安全与类型擦除

引言 泛型是Java 5引入的一项重要特性&#xff0c;它为编译时类型安全提供了支持。在集合框架中&#xff0c;泛型发挥着至关重要的作用&#xff0c;允许开发者指定集合中元素的类型&#xff0c;从而避免了类型转换的错误和运行时异常。此外&#xff0c;Java中的类型擦除机制虽然…

Spring-Data-Elasticsearch

简介 Spring Data for Elasticsearch 是 Spring Data 项目的一部分&#xff0c;该项目旨在为新数据存储提供熟悉且一致的基于 Spring 的编程模型&#xff0c;同时保留特定于存储的特性和功能。 Spring Data Elasticsearch 项目提供了与 Elasticsearch 搜索引擎的集成。Spring…