【ElasticSearch 集群】Linux安装ElasticSearch集群(图文解说详细版)

news2025/7/11 1:27:44

上次我们讲了linux环境安装ElasticSearch
Linux安装ElasticSearch以及Ik分词器(图文解说详细版)

这次我们来将一下ElasticSearch的集群安装

安装es的前置条件: Linux安装Java环境(OracleJDK)

这次我们安装的是ElasticSearch-7版本,所以我们安装jdk11

文章目录

    • 准备环境
    • 第一步,安装es
    • 第二步,编辑配置文件
      • 第一台配置如下
      • 第二台配置如下
      • 第三台配置如下
    • 第三步,启动es
      • 防火墙放开三台服务器的9200/9300端口
      • 切换es用户启动es
    • 第四步,访问es,查看集群状态
      • 模拟宕机
    • 第五步,操作es
      • 添加索引
      • 查看索引

准备环境

如果我们搭建集群需要用到9200和9300端口,我们先了解一下他们是什么

Elasticsearch 使用 9200 端口来对外提供 HTTP REST API,并使用 9300 端口来进行节点间通信。其中,基于 HTTP REST API 的接口主要提供给应用程序开发人员来实现 Elasticsearch 的数据读写和检索等操作,而节点间通信则是为了支持集群管理和数据同步等功能。

具体来说,Elasticsearch 的 9300 端口主要用于以下两个方面:

  1. 节点通信:Elasticsearch 采用分布式架构,在集群中的各个节点之间需要进行通信以协调任务、同步数据等操作。这时,节点之间就需要使用 9300 端口来建立专门的 TCP 连接并进行数据交换。

  2. 传输协议:Elasticsearch 采用自定义的 Transport Protocol 来实现节点间通信和交换数据。该协议需要运行在独立的端口上,因此默认情况下会使用 9300 端口来监听节点间通信请求。

尽管 9300 端口并不直接对外提供服务,但它在 Elasticsearch 集群中起到了极为重要的作用。如果出现 9300 端口无法访问或连接失败的情况,可能会导致节点之间无法正常通信、索引分片数据丢失等问题,进而影响整个集群的可用性和稳定性。

这次我们搭建一主双从的集群,需要准备以下三台Linux服务器

ip端口
192.168.75.1289200,9300
192.168.75.1299200,9300
192.168.75.1309200,9300

本文后面的ElasticSearch 都将简写为es

第一步,安装es

由于博主已经讲过es的安装,所以这边就不在赘述,如果有需要请翻阅这篇博客:

Linux安装ElasticSearch以及Ik分词器(图文解说详细版)

这里只给出es的下载地址:

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-3

在这里插入图片描述

解压好情况如下:

在这里插入图片描述

第二步,编辑配置文件

三台服务器都安装好之后,我们依次修改他们的配置文件,配置文件的路径如下:

elasticsearch-7.16.3/config/elasticsearch.yml

在这里插入图片描述

第一台配置如下

# 集群名称
cluster.name: my-application
#节点名称
node.name: node-1
# 绑定IP地址
network.host: 192.168.75.128
# 指定服务访问端口
http.port: 9200
#集群通讯地址
discovery.seed_hosts: ["192.168.75.128:9300", "192.168.75.129:9300","192.168.75.130:9300"]
#集群初始化能够参选的节点信息
cluster.initial_master_nodes: ["192.168.75.128:9300", "192.168.75.129:9300","192.168.75.130:9300"]

在这里插入图片描述

在这里插入图片描述

第二台配置如下

在这里插入图片描述

# 集群名称
cluster.name: my-application
#节点名称
node.name: node-2
# 绑定IP地址
network.host: 192.168.75.129
# 指定服务访问端口
http.port: 9200
#集群通讯地址
discovery.seed_hosts: ["192.168.75.128:9300", "192.168.75.129:9300","192.168.75.130:9300"]
#集群初始化能够参选的节点信息
cluster.initial_master_nodes: ["192.168.75.128:9300", "192.168.75.129:9300","192.168.75.130:9300"]

在这里插入图片描述
在这里插入图片描述

第三台配置如下

# 集群名称
cluster.name: my-application
#节点名称
node.name: node-3
# 绑定IP地址
network.host: 192.168.75.130
# 指定服务访问端口
http.port: 9200
#集群通讯地址
discovery.seed_hosts: ["192.168.75.128:9300", "192.168.75.129:9300","192.168.75.130:9300"]
#集群初始化能够参选的节点信息
cluster.initial_master_nodes: ["192.168.75.128:9300", "192.168.75.129:9300","192.168.75.130:9300"]

在这里插入图片描述
在这里插入图片描述

第三步,启动es

防火墙放开三台服务器的9200/9300端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent

切换es用户启动es

进入bin目录,运行elasticsearch

在这里插入图片描述

三台机器依次启动,启动成功结果如下:

在这里插入图片描述

第四步,访问es,查看集群状态

  • http://192.168.75.128:9200/_cat/nodes?v
  • http://192.168.75.129:9200/_cat/nodes?v
  • http://192.168.75.130:9200/_cat/nodes?v

三个节点都可以访问,结果是一样的

在这里插入图片描述

可以看到我们的192.168.75.128这台机器是主节点,这是他们自己选举出来的结果

下面如果我们的128机器宕机,那么就会从剩下两个节点中选举出一个主节点,就像这样:

模拟宕机

在这里插入图片描述

调用其他两台节点的接口就会发现,主节点已经变成192.168.75.129

在这里插入图片描述

如果这个时候我们重启192.168.75.128

在这里插入图片描述

就会发现主节点已经变成192.168.75.129事实已经改变不了,重生之后就变成小弟了

第五步,操作es

三台机器都可以进行添加和查询的操作
在这里插入图片描述

添加索引

在这里插入图片描述

查看索引

在这里插入图片描述

感谢大家阅读这篇文章,希望能够帮助大家在工作或学习中获得一些收获!
在这里插入图片描述

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

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

相关文章

GraphQL全面深度讲解

目录 一、GraphQL 是什么 二、GraphQL 规范 数据模型 字段 参数 三、运行示例 四、优势和劣势 优势 劣势 一、GraphQL 是什么 GraphQL 是一种用于 API 的查询语言,也是一个基于服务端的运行引擎。 GraphQL 提供了一套完整的规范和描述用于查询 API&#xf…

Django基础入门操作 (Django-01)

一 背景介绍 Django是一个开源的 Web应用框架,由Python写成。采用了MTV的框架模式,它最初是被用来做CMS(内容管理系统)软件。 官方中文文档:Django 文档 | Django 文档 | Django 应用:做内容管理系统(新…

JUC第十三讲:JUC锁: ReentrantLock详解

JUC第十三讲:JUC锁: ReentrantLock详解 本文是JUC第十三讲,JUC锁:ReentrantLock详解。可重入锁 ReentrantLock 的底层是通过 AbstractQueuedSynchronizer 实现,所以先要学习上一章节 AbstractQueuedSynchronizer 详解。 文章目录 …

数据结构与算法基础(青岛大学-王卓)(8)

哎呀呀,sorry艾瑞波地,这次真的断更一个月了,又发生了很多很多事情,秋风开始瑟瑟了,老父亲身体查出肿瘤了,有病请及时就医,愿每一个人都有一个健康的身体,God bless U and FAMILY. 直…

实现简单BS架构案例

BS架构简单通俗理解 就是 浏览器–服务器模式,浏览器 充当 我们的客户端。 目录 简单BS架构实现案例基本原理视图访问规则案例要求改造前服务端线程模版类 改造后(优化)优化策略服务端线程模版类 参考视频 简单BS架构实现案例 基本原理视图 注:服务器必…

【VsCode】SSH远程连接Linux服务器开发,搭配cpolar内网穿透实现公网访问

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

奥斯卡·王尔德

奥斯卡王尔德 奥斯卡王尔德(Oscar Wilde,1854年10月16日—1900年11月30日),出生于爱尔兰都柏林,19世纪英国(准确来讲是爱尔兰,但是当时由英国统治)最伟大的作家与艺术家之一&#xf…

【Java 进阶篇】JDBC ResultSet 遍历结果集详解

在Java数据库编程中,经常需要执行SQL查询并处理查询结果。ResultSet(结果集)是Java JDBC中用于表示查询结果的关键类之一。通过遍历ResultSet,我们可以访问和操作从数据库中检索的数据。本文将详细介绍如何使用JDBC来遍历ResultSe…

手把手教你做个智能加湿器(一)

一、前言 目前常见的加湿器类电子产品一般是由PCBA和外壳组成,我们将从PCB设计,然后编写软件,接着设计外壳,设计出一个完整的产品出来。 需要使用到软件: Altium Designer 17 SolidWorks 2019 Keil 4 二…

C++--位图和布隆过滤器

1.什么是位图 所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。比如int 有32位,就可以存放0到31这32个数字在不在某个文件中。当然,其他类型也可以。 2.位…

Python|OpenCV-如何给目标图像添加边框(7)

前言 本文是该专栏的第7篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用opencv处理图像的时候,会不可避免的对图像的一些具体区域进行一些操作。比如说,想要给目标图像创建一个围绕图像的边框。简单的来说,就是在图片的周围再填充一个粗线框。具体效果,…

真红之刃攻略,真红之刃氪金攻略

真红之刃新手怎么玩?这款游戏有很多值得新手们了解的内容。下面我们来详细了解一下游戏的玩法。 关注【娱乐天梯】,获取真红之刃0.1折内部福利号 1、恶魔广场:这是奇迹中最受欢迎的玩法之一,也是每日必刷的副本之一。进入条件是1转…

(Note)机器学习面试题

机器学习 1.两位同事从上海出发前往深圳出差,他们在不同时间出发,搭乘的交通工具也不同,能准确描述两者“上海到深圳”距离差别的是: A.欧式距离 B.余弦距离 C.曼哈顿距离 D.切比雪夫距离 S:D 1. 欧几里得距离 计算公式&#x…

经典算法-----迷宫问题(栈的应用)

目录 前言 迷宫问题 算法思路 1.栈的使用方法 ​编辑2.方向的定义 代码实现 栈的cpp代码: 栈的头文件h代码: 走迷宫代码: 前言 今天学习一种算法问题,也就是我们常见的迷宫问题,本期我们通过前面学习过的数据结构---栈来…

一种基于体素的射线检测

效果 基于体素的射线检测 一个漏检的射线检测 从起点一直递增指定步长即可得到一个稀疏的检测 bool Raycast(Vector3 from, Vector3 forword, float maxDistance){int loop 6666;Vector3 pos from;Debug.DrawLine(from, from forword * maxDistance, Color.red);while (loo…

Vue3切换路由白屏刷新后才显示页面内容

问题所在: 1.首先检查页面路由以及页面路径配置是否配置错误。 2.如果页面刷新可以出来那证明不是配置的问题,其次检查是否在根组件标签最外层包含了个最大的div盒子包裹内容。(一般vue3是可以不使用div盒子包裹的) 3.最后如果…

快速开发微信小程序之一登录认证

一、背景 记得11、12年的时候大家一窝蜂的开始做客户端Android、IOS开发,我是14年才开始做Andoird开发,干了两年多,然后18年左右微信小程序火了,我也做了两个小程序,一个是将原有牛奶公众号的功能迁移到小程序&#x…

【iptables 实战】04 高级用法:iptables模块之state扩展

一、场景描述 假设我们内部的主机,想访问新闻网站,即访问其80端口。要想正确地获取到http报文内容。我们对这个网络报文应该这么设置 出去的报文,目标端口,80端口,放行进入的报文,源端口,80端…

vertx的学习总结2

一、什么是verticle verticle是vertx的基本单元,其作用就是封装用于处理事件的技术功能单元 (如果不能理解,到后面的实战就可以理解了) 二、写一个verticle 1. 引入依赖(这里用的是gradle,不会吧&#…

几个推荐程序员养成的好习惯

本文框架 前言case1 不想当然case2 不为了解决问题而解决问题case3 不留问题死角case4 重视测试环节 前言 中秋国庆双节至,旅行or回乡探亲基本是大家的选择,看看风景或陪陪家人确实是个难得的机会。不过我的这次假期选择了闭关,不探亲&#…