搭建 es 集群

news2024/11/15 11:50:49

一、VMware准备机器

首先准备三台机器

这里我直接使用 VMware 构建三个虚拟机 都是基于 CentOS7

然后创建新用户

部署 es 需要单独创建一个用户,我这里在构建虚拟机的时候直接创建好了

然后将安装包上传

可以使用 rz 命令上传,也可以使用工具上传

工具包地址:链接:https://pan.baidu.com/s/1sGJW4jErofM3aj2CeU1ncg?pwd=eo6a 
提取码:eo6a 

上传后进行解压

三台机器都需要

tar zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz 

解压完成

二、配置 jdk

es7 以上内置了 jdk 环境,

但是需要配置一下:

# linux  进入用户主目录,比如/home/heyue/es/目录下,设置用户级别的环境变量
vim .bash_profile
#设置ES_JAVA_HOME和ES_HOME的路径
export ES_JAVA_HOME=/home/heyue/es/elasticsearch-7.17.3/jdk
export ES_HOME=/home/heyue/es/elasticsearch-7.17.3
export PATH=$PATH:/home/heyue/es/elasticsearch-7.17.3/jdk/bin
#执行以下命令使配置生效
source .bash_profile

三、先单机启动

这里可以先启动三台单机的 es

然后配置 ElasticSearch

配置 elasticsearch.yaml 文件

vim elasticsearch.yml

#开启远程访问  
network.host: 0.0.0.0
#单节点模式   初学者建议设置为此模式 
discovery.type: single-node

修改 JVM 内存 我这里内存比较小,可以根据自己服务器情况进行设置

修改config/jvm.options配置文件,调整jvm堆内存大小

启动 es

bin/elasticsearch 

# -d 后台启动
bin/elasticsearch -d

启动成功后通过浏览器访问

如果访问不通,可以看下防火墙端口是否开放:

添加防火墙规则:
打开端口,例如打开端口 9200(HTTP):

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

重新加载防火墙规则以应用更改:

sudo firewall-cmd --reload

查看已打开的端口:

sudo firewall-cmd --list-ports

然后可以看到 我这里三台 单机 es 已经启动成功

四、安装 kibana

然后随便找一台机器安装 kibana

同样的上传压缩包,解压

修改配置文件

vim config/kibana.yml

修改一下几个地方

端口:

 网卡监听:

es URL:

中文:

然后启动 kibana

nohup  bin/kibana &

可以看到启动成功

这里注意,别忘了 开放端口 5601

五、集群配置

域名映射

可以先进行域名映射,便于后面维护

执行命令:

vim /etc/hosts

注意:这里如果其实文件只读,可以对文件增加写入权限,也可以使用 root 进行修改

添加以下配置:

192.168.177.201 es-node1
192.168.177.201 es-node2
192.168.177.201 es-node3

三台机器同样的操作

然后修改 elasticsearch.yml 配置

首先把刚刚单机配置注释

其他配置:

# 指定集群名称3个节点必须一致
cluster.name: es-cluster
#指定节点名称,每个节点名字唯一
node.name: node-1
#是否有资格为master节点,默认为true
node.master: true
#是否为data节点,默认为true
node.data: true
# 绑定ip,开启远程访问,可以配置0.0.0.0
network.host: 0.0.0.0
#指定web端口
#http.port: 9200
#指定tcp端口
#transport.tcp.port: 9300
#用于节点发现
discovery.seed_hosts: ["es-node1", "es-node2", "es-node3"] 
#7.0新引入的配置项,初始仲裁,仅在整个集群首次启动时才需要初始仲裁。
#该选项配置为node.name的值,指定可以初始化集群节点的名称
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"

配置好之后,先 kill 掉刚刚启动的进程,三台机器同样的操作

 !!!注意修改完成之后,一定一定要记得切换用户,不要使用 root!不要使用 root!不要使用 root!不要使用 root!不要使用 root!不要使用 root!

然后由于刚刚进行单机启动了,所以还需要删除 data 文件夹

# 注意:如果运行过单节点模式,需要删除data目录, 否则会导致无法加入集群 
rm -rf data 
# 启动ES服务 bin/elasticsearch -d

 

重新启动:

bin/elasticsearch -d

报错以及解决方案

发现报错可以按照以下方案解决:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错

然后进行配置:

注意需要先切换到 root 

#切换到root用户
vim /etc/security/limits.conf

末尾添加如下配置:
  *        soft     nofile     65536
  *     hard     nofile     65536
  *     soft     nproc     4096
  *        hard     nproc     4096

[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]

无法创建本地线程问题,用户最大可创建线程数太小

vim /etc/security/limits.d/20-nproc.conf

改为如下配置:
* soft nproc 4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

最大虚拟内存太小,调大系统的虚拟内存

vim /etc/sysctl.conf
追加以下内容:
vm.max_map_count=262144
保存退出之后执行如下命令:
sysctl -p

[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.

  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

#或者指定配置单节点(集群单节点)
discovery.type: single-node

 [5] 

 注意:es默认不能用root用户启动,生产环境建议为elasticsearch创建用户。

#为elaticsearch创建用户并赋予相应权限
adduser es
passwd es
chown -R es:es elasticsearch-7.17.3

配置完成后,注意,一定一定 要记得切换用户,es 不支持 root 启动

如果已经使用 root 启动报错了,需要先执行以下命令进行替换

回到 es 文件夹,执行以下命令,里面的 heyue 换成自己的用户名

chown -R heyue:heyue elasticsearch-7.17.3

如果出现以下信息,那么恭喜,集群搭建成功

六、更新 kibana 配置

然后还需要修改一下 kibana 配置,配置为集群

vim config/kibana.yml


elasticsearch.hosts: ["http://192.168.65.174:9200","http://192.168.65.192:9200","http://192.168.65.204:9200"]  

七、安装 Cerebro 客户端

先上传,然后解压

unzip cerebro-0.9.4.zip

 解压完成后直接启动

nohup bin/cerebro > cerebro.log &

然后页面上输入 es 地址链接

到这里,看到这个页面,恭喜 es 集群已经完成搭建完成 

 这里是基于原生安装包的方式进行搭建,基于 docker 搭建也是一样的,使用docker 启动三个单机,然后修改里面的配置文件即可

未来的自己一定会感谢今天努力的自己,加油,我们一起进步!!!

 

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

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

相关文章

Apache Doris 如何基于自增列满足高效字典编码等典型场景需求

自增列(auto_increment)是数据库中常见的一项功能,它提供一种方便高效的方式为行分配唯一标识符,极大简化数据管理的复杂性。当新行插入到表中时,数据库系统会自动选取自增序列中的下一个可用值,并将其分配…

【路径规划】全局路径规划算法——A*算法(含python实现 | c++实现)

文章目录 参考资料1. 算法简介2. 算法精讲2.1 预处理2.2 开始搜索2.3 继续搜索2.4 确定实际路径 3. 算法总结3.1 算法步骤3.2 伪代码 4. python实现5. c实现 参考资料 Introduction to the A* Algorithm路径规划与轨迹跟踪系列算法Robotic Motion Planning Lectures A星算法详…

【附下载】3Ds Max从安装、配置到入门提高和高级用法

#3Ds Max 一、安装 1.1 安装说明 地址:链接:https://pan.baidu.com/s/1lwKMbgbE32wCL6PpMv706A?pwddll8 提取码:dll8 –来自百度网盘超级会员V2的分享 安装说明:文件夹里有安装说明 安装解压即可 关键就是将crack文件放到自己…

高架学习笔记之信息安全基础

目录 一、信息安全基础 1.1. 概念 1.2. 信息存储安全 1.3. 网络安全 二、信息安全系统的组成框架 三、信息加解密技术和数字签名 四、访问控制技术 五、信息安全的保障体系与评估方法 5.1. 计算机信息系统安全保护等级 5.2. 安全风险管理 一、信息安全基础 1.1. 概念 …

DEYOv2: Rank Feature with Greedy Matchingfor End-to-End Object Detection

摘要 与前代类似, DEYOv2 采用渐进式推理方法 来加速模型训练并提高性能。该研究深入探讨了一对一匹配在优化器中的局限性,并提出了有效解决该问题的解决方案,如Rank 特征和贪婪匹配 。这种方法使DEYOv2的第三阶段能够最大限度地从第一和第二…

工控MCGS触摸屏Hacking勒索部署

https://github.com/MartinxMax/Mo0n_V1.2 !!不关注点赞收藏,以后没好东西了奥!! 端口扫描-获取信息 $python Mo0n.py -scan x.x.x.0/24 or $nmap -sS -Pn -T4 x.x.x.0/24 -p 127 MCGS编程软件 发现触摸屏受到密码保护 Oops!!! echo /\_…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Circle)

用于绘制圆形的组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Circle(options?: {width?: string | number, height?: string | number}) 从API version 9开始&…

Flutter-底部弹出框(Widget层级)

需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时,支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知,就是在界面中可以支持…

Smart Light Random Memory Sprays Retinex 传统图像增强 SLRMSR

文章目录 前言1、Smart Light Random Memory Sprays Retinex概况2、Smart Light Random Memory Sprays Retinex的实现2.1、SLRMSR算法的伪代码2.2、初始化记忆喷雾(CreateInitialMemorySpray)2.3、更新记忆喷雾 (UpdateMemorySpray)2.4、计算颜色校正因子…

到底什么时候该使用MongoDB

NoSQL是什么 NoSQL : Not Only SQL , 本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如 : sql 标准、 ACID 属性,表结构等。 NoSQL分类 类型应用场景典型产品Key-value存储缓存&…

【Excel自动化办公】使用openpyxl对Excel进行读写操作

目录 一、环境安装 1.1 创建python项目 1.2 安装openpyxl依赖 二、Excel数据读取操作 三、Excel数据写入操作 3.1 创建空白工作簿 3.2 写数据 四、设置单元格样式 4.1 字体样式 4.2 设置单元格背景填充色 4.3 设置单元格边框样式 4.4 单元格对齐方式 4.5 数据筛选…

体系化全面认识 Nginx !

高并发、高性能;模块化架构使得它的扩展性非常好;异步非阻塞的事件驱动模型这点和 Node.js 相似;相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性;热部署、平滑升级;完全开源&…

代码随想录算法训练营第46天 | 完全背包,139.单词拆分

动态规划章节理论基础: https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 完全背包理论基础: https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9…

数字化社会的新纪元:揭秘 Web3 的社交网络

随着区块链技术的不断发展和普及,Web3作为其重要组成部分,正逐渐改变着社交网络的面貌。Web3的出现不仅为社交网络带来了新的技术和理念,还为用户提供了更加开放、透明和安全的社交体验。本文将深入探讨Web3的社交网络,揭示其在数…

计算机网络:性能指标

计算机网络:性能指标 速率带宽吞吐量时延时延带宽积往返时间利用率丢包率 本博客介绍计算机网络的性能指标,我们可以从不同的方面来度量计算机网络的性能。常用的计算机网络性能指标有以下 8 个,他们是:速率、带宽、吞吐量、时延、…

47.全排列II

// 定义一个Solution类&#xff0c;用于解决给定不重复整数数组的全排列问题 class Solution {// 初始化结果集&#xff0c;用于存放所有不重复的全排列组合List<List<Integer>> result new ArrayList<>();// 初始化路径变量&#xff0c;用于暂存当前递归生…

ESP32实现(MQTT Client)连接物联网平台(EMQX)

目录 概述 1 配置EMQX服务器 1.1 搭建EMQX服务器 1.2 配置服务器参数 2 ESP32实现MQTT Client 2.1 创建MQTT Client项目 2.2 实现MQTT Client 2.3 ESP32连接EMQX 3 ESP32Client实现广播和订阅消息 3.1 广播消息 3.1.1 编写广播消息函数 3.1.2 下载和验证 3.1.3 订阅…

Windows11安装Msql8.0版本详细安装步骤!

文章目录 前言一、下载Mysql二、安装Mysql三、登录验证三、环境变量配置总结 前言 每次搭建新环境的时候&#xff0c;都需要网上搜寻安装的步骤教程&#xff01;为了以后方便查阅&#xff01;那么本次就记录一下Windows11安装Msql8.0的详细步骤&#xff01;也希望能帮助到有需…

蓝桥杯物联网竞赛_STM32L071_12_按键中断与串口中断

按键中断&#xff1a; 将按键配置成GPIO_EXTI中断即外部中断 模式有三种上升沿&#xff0c;下降沿&#xff0c;上升沿和下降沿都会中断 external -> 外部的 interrupt -> 打断 trigger -> 触发 detection -> 探测 NVIC中将中断线ENABLE 找接口函数 在接口函数中写…

Apache Doris 2.1 核心特性 Variant 数据类型技术深度解析

在最新发布的 Apache Doris 2.1 新版本中&#xff0c;我们引入了全新的数据类型 Variant&#xff0c;对半结构化数据分析能力进行了全面增强。无需提前在表结构中定义具体的列&#xff0c;彻底改变了 Doris 过去基于 String、JSONB 等行存类型的存储和查询方式。为了让大家快速…