ElasticSearch 7.6.2版本集群搭建及踩坑

这篇具有很好参考价值的文章主要介绍了ElasticSearch 7.6.2版本集群搭建及踩坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境准备

服务器说明

本次演示采用三台RockyLinux 8.5版本服务器

服务器 IP 备注
es-master 172.16.7.11 主节点
es-node01 172.16.7.5 01节点
es-node02 172.16.7.13 02节点

内核版本

[root@es-master ~]# uname -a
Linux es-master 4.18.0-348.20.1.el8_5.x86_64 #1 SMP Thu Mar 10 20:59:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

修改系统名

## 主节点
hostnamectl set-hostname es-master
## node1节点
hostnamectl set-hostname es-node01
## node2节点
hostnamectl set-hostname es-node02

配置hosts

所有服务器配置一些/etc/hosts

172.16.7.11 es-master
172.16.7.5 es-node01
172.16.7.13 es-node02

安装JDK

##### 7.x开始内置了JDK不需要安装了,官网连接:
https://www.elastic.co/cn/support/matrix#logstash_plugins

image.png

创建用户

useradd cncfclub
passwd cncfclub
chown -R cncfclub:cncfclub  elasticsearch-7.6.2

下载软件包

下载软件

ES中文社区下载连接:

挑一个自己觉得稳定的版本我这里选择了7.6.2image.png

创建文件夹并将es传输到文件夹内并解压

mkdir -p /server/tools && cd /server/tools

将下载 的es安装包分别传输到三台服务器上
image.png
解压并删除压缩文件

## 解压
tar xf elasticsearch-7.6.2-linux-x86_64.tar.gz
## 删除
rm -f elasticsearch-7.6.2-linux-x86_64.tar.gz

集群部署

目录结构说明

image.png

bin :脚本文件,包括 ES 启动 & 安装插件等等

config :elasticsearch.yml(ES 配置文件)、jvm.options(JVM 配置文件)、日志配置文件等等

JDK :内置的 JDK,JAVA_VERSION=“12.0.1”

lib :类库

logs :日志文件

modules :ES 所有模块,包括 X-pack 等

plugins :ES 已经安装的插件。默认没有插件

data :ES 启动的时候,会有该目录,用来存储文档数据。该目录可以设置

JVM优化

根据官方提供的《堆内存:大小和交换编辑》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html

ES 默认安装后设置的堆内存是 1 GB,在实际用的肯定是少了,我目前用的演示的服务器的内存大小是4GB,所以我就不改动了,官方说过如果足够的内存,也尽量不要 超过 32 GB。即每个节点内存分配不超过 32 GB。因为它浪费了内存,降低了 CPU 的性能,还要让 GC 应对大内存。如果你想保证其安全可靠,设置堆内存为 31 GB 是一个安全的选择。

elasticsearch.yml配置文件说明

[root@es-master config]# cat elasticsearch.yml 
# 集群名称,设置一个统一的名字
cluster.name: cncfclub-es-cluster
# 节点名字,每个节点不同
node.name: es-master
# 是否有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#设置最大集群节点数
node.max_local_storage_nodes: 3
#数据存储路径
path.data: /server/data
#日志存储路径
path.logs: /server/logs
# CentOS6 版本需要加入这两行
#bootstrap.memory_lock: true
#bootstrap.system_call_filter: false
#设置IP地址0.0.0.0 外网访问谁IP都能不然默认就是内网IP
network.host: 0.0.0.0
#设置端口
http.port: 9200
#集群通信接口
transport.tcp.port: 9300
#设置节点发现
discovery.seed_hosts: ["host1", "host2"]
#设置初始化集群选举
cluster.initial_master_nodes: ["node-1", "node-2"]

Master节点elasticsearch.yml配置

cluster.name: cncfclub-es-cluster
node.name: es-master
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]

node01节点elasticsearch.yml配置

cluster.name: cncfclub-es-cluster
node.name: es-node01
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]

node02节点elasticsearch.yml配置

cluster.name: cncfclub-es-cluster
node.name: es-node02
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]

创建数据和日志目录

mkdir -p /server/data && mkdir -p /server/logs全部赋权
#给有关es的
chown -R cncfclub:cncfclub /server

启动服务

## 进入cncfclub用户
su cncfclub
## 进入bin启动目录
cd /server/tools/elasticsearch-7.6.2/bin 
# 运行
./elasticsearch
# 后台运行
./elasticsearch -d

验证

image.png
image.png
image.png

head插件

elasticsearch-head是一个用来浏览、与Elasticsearch簇进行交互的web前端展示插件。 因此elasticsearch-head是一个用来监控Elasticsearch状态的客户端插件

简单粗暴浏览器直接安装Multi elasticsearch head插件

或者docker run一个web服务

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head

image.png

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

image.png

解决办法

### 修改文件
vim /etc/sysctl.conf
 
### 添加参数 最后一行添加
vm.max_map_count = 262144

### 重启配置
sysctl -p

坑二:OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

image.png

### 修改
vim jvm.options
### 修改参数
-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC

坑三:java.nio.file.AccessDeniedException: /server/tools/elasticsearch-7.6.2/config/elasticsearch.keystore

image.png文章来源地址https://www.toymoban.com/news/detail-426957.html

## 权限问题
chown -R cncfclub:cncfclub /server/tools/elasticsearch-7.6.2/config

到了这里,关于ElasticSearch 7.6.2版本集群搭建及踩坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch入门教程--集群搭建和版本比较

    Elasticsearch 集群有一个唯一的名字,默认就是”elasticsearch”。,一个节点只能通过指定某个集群的名字,来加入这个集群。 集群搭建如下: 复制ES的安装目录三份:esnode-1,esnode-2,esnode-3,分别编辑config/elasticsearch.yml 配置文件 node-1: node-2: node-3: 2、分别启动,浏览器访问 http://

    2024年02月16日
    浏览(39)
  • oracle 重启步骤及踩坑经验

    oracle 重启步骤及踩坑经验 切换到oracle用户 关闭监听 杀掉oracle有关进程 登录数据库,关闭oracle数据库 重启监听 重启数据库 shutdown immediate 时可能比较久,此时不要着急退出,等待一会等他报错 重启oracle startup时一直卡在Database mounted 可以等一会,如果等了很久没报错就退出

    2024年02月06日
    浏览(29)
  • windows10部署OpenIM,及踩坑记录

    https://doc.rentsoft.cn/#/demo/server_deploy/windows 部署方式:源码部署 部署版本:Open-IM-Server-main、Open-IM-SDK-Core-2.3.3 部署环境:windows10 这个链接是官方整理的部署文档,但是按照官方文档的步骤部署完之后,demo跑不通,一路排查整理,终于跑通,在这里整理并记录此次的部署过程,

    2024年02月04日
    浏览(34)
  • 加密组件Jasypt学习、实战及踩坑记录

    最近入职新公司,因几乎全部项目都使用到jasypt,故而初步学习记录下本文(持续更新)。 官网及GitHub给出的简介:使用简单,性能好,特性features非常丰富;支持 另,有个开源Jasypt-spring-boot组件,GitHub,集成Jasypt,方便Spring Boot开发者使用。 开发中最常见的场景就是对数据

    2023年04月16日
    浏览(32)
  • Android录音功能的实现及踩坑记录

    最近接到个需求,不使用第三方SDK的情况下实现IM通讯,文字聊天已经通过MQTT实现,而语音功能目前想到的较好解决方案就是进行录音文件的上传下载。可能还有更好解决方案,但我目前没想到,有建议的小伙伴劳烦指导下。 前提 : 1、权限申请: 清单文件中加上: 对应读

    2024年02月22日
    浏览(34)
  • Spring Cloud OpenFeign 的使用及踩坑指南

    Feign 和OpenFeign Feign OpenFeign openFeign的优势 OpenFeign应用 1. 导入依赖 2. 使用 3. 日志配置 4. 数据压缩 OpenFeign高级应用 OpenFeign熔断降级的两种方式-降级方法和降级工厂 踩坑指南 坑一:Http Client 坑二:全局超时时间 坑三:单服务设置超时时间 遇到的问题 1. 使用Spring MVC注解,但请

    2024年02月14日
    浏览(35)
  • Windows10下docker安装指南及踩坑解决

    1.官网下载docker文件( 注意:Windows10家庭版要自己安装hyper-v,专业版以上自带) 顺利启动docker界面 虚拟化技术没打开,需要打开虚拟化hyper 解决:打开设置下的控制面板-程序和功能-启用和关闭windows功能-勾选打开hyper-v 备注:如遇hyper-v平台置灰无法打开,需要开启bios中的虚拟

    2024年02月04日
    浏览(33)
  • 【其他】Windows10下docker安装指南及踩坑解决

    1.官网下载docker文件( 注意:Windows10家庭版要自己安装hyper-v,专业版以上自带) 顺利启动docker界面 虚拟化技术没打开,需要打开虚拟化hyper 解决:打开设置下的控制面板-程序和功能-启用和关闭windows功能-勾选打开hyper-v 备注:如遇hyper-v平台置灰无法打开,需要开启bios中的虚拟

    2024年02月06日
    浏览(42)
  • Kubernetes轻量级日志工具Loki安装及踩坑记录

    Loki是Grafana出品的一个轻量级日志系统,熟悉ELK的都知道ELK使用起来的成本,而且仅仅是日志检索使用ELK的话有点大材小用了。Loki8技术栈中使用了以下组件。 Promtail 用来将容器日志发送到 Loki 或者 Grafana 服务上的日志收集工具,该工具主要包括发现采集目标以及给日志流添

    2024年02月03日
    浏览(43)
  • 【Rust】Iced GUI库初使用及踩坑——写一个计数器

    从5月份起,我一直在寻找一个可用的,稳定的,开发者友好的Rust GUI框架,试图做到All in Rust,即一切的一切都可以靠Rust实现,其中GUI是相当重要的一部分,但找了许久,大部分给我答案是使用 tauri ,可我不是一个前端程序员,也没有深入学习前端的想法,故寻找计划只好搁

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包