ElasticSearch7.7.1集群搭建

前言

Elasticsearch(ES)是一个基于Apache Lucene的分布式、高扩展、近实时的搜索引擎,主要用于海量数据快速存储、实时检索、高效分析的场景。通过简单易用的RESTful API,Elasticsearch隐藏了Lucene的复杂性,使得全文搜索变得简单。

以下是Elasticsearch的主要特点:

  1. 分布式:由于其分布式特性,Elasticsearch可以将海量数据分散到多台服务器上存储、检索和分析。
  2. 高扩展性:Elasticsearch可以扩展到上百台服务器,支持大规模数据存储和检索。
  3. 近实时性:Elasticsearch提供了近乎实时的搜索和分析功能,数据写入后几乎可以立即进行搜索和分析。
  4. 全文检索:Elasticsearch支持全文检索,能够快速检索数据并返回匹配的结果。
  5. 分布式分析:通过分布式特性,可以在多台服务器上并行处理数据,提高分析效率。
  6. 数据丰富:无论数据是结构化还是非结构化,Elasticsearch都能高效地存储和索引数据,并提供快速检索和分析。
  7. 易于使用:通过RESTful API,Elasticsearch提供了简单易用的接口,方便开发人员进行数据检索和查询。

由于以上特点,Elasticsearch广泛应用于各种业务场景,如维基百科、Stack Overflow、GitHub等均有使用。此外,Elasticsearch也是Elastic Stack的核心组件之一,与其他组件如Logstash、Kibana等配合使用,可以更方便地进行数据收集、处理、分析和可视化等工作。

下面是操通过服务器 3 台实现集群的安装

一、Elasticsearch 集群安装

1、准备工作创建对应安装目录并下载 elasticsearch rpm包

1.1 创建安装目录并下载资源包

mkdir es-node-1-7.7.1
cd es-node-1-7.7.1
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.1-x86_64.rpm

效果如图:

1.2 部署前配置,修改limits.conf 文件

注:limits.conf 是 PAM (Pluggable Authentication Modules) 的配置文件,用于设置用户和组的资源限制。通过这个文件,你可以限制用户或组可以使用的系统资源,如 CPU、内存、磁盘空间等。

#修改limits.conf 文件,该文件为通过PAM登录的用户设置资源限制,它不影响系统服务的资源限制。
#这里的 * 标识所有用户
#noproc 是代表最大进程数
#nofile 是代表最大文件打开数
#memlock 最大锁定内存地址空间
#hard limit 严格的设定,必定不能超过这个设定的数值
#soft limit 警告的设定,可以超过这个设定值,但是若超过则有警告信息
#unlimited  无限制
[root@localhost es-node-1-7.7.1 ~] vim /etc/security/limits.conf
hard nofile 65536 # es要求文件数最小为65536
soft nproc 2048
hard nproc 4096
soft memlock unlimited
hard memlock unlimited

#修改sysctl.conf文件,Sysctl是一个允许您改变正在运行中的Linux系统的接口,用sysctl可以读取设置超过五百个系统变量。
[root@localhost es-node-1-7.7.1 ~] vim /etc/sysctl.conf
vm.max_map_count=655360 # 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
fs.file-max=655360 # 系统级打开最大文件句柄的数量永久生效的修改

#使sysctl.conf 修改生效
[root@localhost es-node-1-7.7.1 ~] sysctl -p

2、开始安装

2.1 Root 用户安装

sudo rpm -ivh elasticsearch-7.7.1-x86_64.rpm

2.2 重新加载服务并启动

1、sudo systemctl daemon-reload

注意:sudo systemctl daemon-reload 用于重新加载 systemd 服务的命令。当你修改了 systemd 的服务文件后,需要运行这个命令来使修改生效。这是因为 systemd 服务文件中的配置在修改后并不会自动应用到已运行的服务上,需要通过重新加载来应用新的配置。

如果你在编辑完 systemd 服务文件后直接启动或重启服务,可能会因为配置错误而导致服务无法正常启动。因此,在修改完服务文件后,应该先运行 sudo systemctl daemon-reload 命令,然后再启动或重启服务,以确保配置正确。

请注意,运行 sudo systemctl daemon-reload 命令需要管理员权限,因此需要使用 sudo 命令来执行。

2、sudo systemctl enable elasticsearch.service

用于启用 systemd 服务单元的命令。当你安装了一个服务并将其配置为开机自启时,可以使用这个命令来使其在系统启动时自动启动。

3、sudo systemctl start elasticsearch.service 用于启动 systemd 服务单元的命令

3、创建对应的数据目录和日志目录

创建数据存储目录
mkdir -p /home/app_user/es-node-1-7.7.1/data
mkdir -p /home/app_user/es-node-1-7.7.1/logs/jvmlogs

修改ES目录权限
chown -R app_user:app_user  /etc/elasticsearch/
chown -R app_user:app_user  /usr/share/elasticsearch/
chown -R app_user:app_user  /home/app_user/es-node-1-7.7.1/data      
chown app_user:app_user /etc/sysconfig/elasticsearch
chown -R app_user:app_user /home/app_user/es-node-1-7.7.1/logs/jvmlogs
# 以上操作都是为了赋予app_user用户操作权限

4、安装完生成配置文件

安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径 /etc/elasticsearch/elasticsearch.yml # els的配置文件

/etc/elasticsearch/jvm.options # JVM相关的配置,内存大小等等

/etc/elasticsearch/log4j2.properties # 日志系统定义

/usr/share/elasticsearch # elasticsearch 默认安装目录

/var/lib/elasticsearch # 数据的默认存放位置

5、修改集群配置

5.1 修改elasticsearch.yml配置文件

vim /etc/elasticsearch/elasticsearch.yml

cluster.name: es-7.7.1
node.name: node-1
path.data: /home/app_user/es-node-1-7.7.1/data
path.logs: /home/app_user/es-node-1-7.7.1/logs
network.host: 10.10.1.11
http.port: 9200
transport.port: 9300  # tcp的端口号,默认是9300
discovery.seed_hosts: ["10.10.1.11", "10.10.1.12","10.10.1.13"]
cluster.initial_master_nodes: ["node-1", "node-2"]
http.cors.enabled: true     #是否开启跨域访问
http.cors.allow-origin: "*" #开启跨域访问后的地址限制,*表示无限制

配置文件如图:

elasticsearch.yml 文件的配置本次配置是循环主节点

5.2 JVM的参数修改

$ vim /etc/elasticsearch/jvm.options

-XX:ErrorFile=/home/app_user/es-node-1-7.7.1/logs/jvmlogs/hs_err_pid%p.log

8:-Xloggc:/home/app_user/es-node-1-7.7.1/logs/jvmlogs/gc.log

9-:-Xlog:gc*,gc+age=trace,safepoint:file=/home/app_user/es-node-1-7.7.1/logs/jvmlogs/gc.log:utctime,pid,tags:filecount=32,filesize=64m

详细如图:

注意:JVM(Java虚拟机)的配置文件名为jvm.options,通常位于Java项目的根目录下。该文件用于设置JVM的参数,以优化Java应用程序的性能和行为。

在jvm.options文件中,可以设置各种JVM参数,包括堆内存大小、垃圾回收器选项、JIT编译器选项等。这些参数可以影响Java应用程序的启动速度、内存使用、运行性能等。

5.3 修改elasticsearch的默认启动用户

vim /usr/lib/systemd/system/elasticsearch.service User=app_user Group=app_user

6、启动Elasticsearch

Root用户下执行:

systemctl restart elasticsearch.service

6.1 浏览器访问:

直接在浏览器内输入:http://10.10.1.11:9200/

6.2 服务端直接 curl 请求

curl 请求:curl -i "http://10.10.1.12:9200/"

二、ElasticSearch7.7.1 集群安装 IK 和 pinyin 扩展插件

1、下载并安装扩展插件

1.1 下载 elasticsearch-analysis-ik

https://github.com/medcl/elasticsearch-analysis-ik/releases

1.2 下载 elasticsearch-analysis-pinyin

https://github.com/medcl/elasticsearch-analysis-pinyin/releases

详细如图:

cd /usr/local/tools/elasticsearch/elasticsearch-7.7.1
# 直接下载 ik 扩展插件
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.1/elasticsearch-analysis-ik-7.7.1.zip
# 直接下载 pinyin 扩展插件
wget https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.7.1/elasticsearch-analysis-pinyin-7.7.1.zip

#新建il文件夹
mkdir -P plugins/ik
# 解压到 插件 到ik目录
mv elasticsearch-analysis-ik-7.7.1.zip /ik/
unzip elasticsearch-analysis-ik-7.7.1.zip

# 拼音扩展同样的操作

#切换目录 cd /usr/share/elasticsearch
#查看是否安装完成
bin/elasticsearch-plugin list

1.3 查看安装扩展插件列表

2、重启es,让分词器生效,操作shell如下

2.1 Root用户下执行重启

systemctl restart elasticsearch.service

2.2 或者 jps 查看 elesticsearch 进程杀掉重启

$ kill -9 8448

#重启启动esbin/elasticsearch -d

确保整个es集群上的每台机器都操作了以上步骤后,就可以在kibana上测试了

三、ElasticSearch7.7.1 集群 kibana 看板

1、下载对应版本的 kibana 包

https://elasticsearch.cn/download/#seg-2 官方下载地址

https://artifacts.elastic.co/downloads/kibana/kibana-7.7.1-linux-x86_64.tar.gz

2、下载完kibana 包,直接解压并修改配置文件

kibana 运行用户 app_user

路径:/home/app_user/kibana-7.7.1-linux-x86_64

2.1 修改配置文件 kibana.yml

操作效果如图:

cd /home/app_user
#直接解压
$ tar -zxvf kibana-7.7.1-linux-x86_64.tar.gz
$ cd kibana-7.7.1-linux-x86_64/config/
$ vi kibana.yml

server.port: 5601
server.host: "0.0.0.0"
server.name: "Kibana"
elasticsearch.hosts: ["http://10.10.1.11:9200", "http://10.10.1.12:9200","http://10.10.1.13:9200"]
kibana.index: ".kibana"
kibana.defaultAppId: "home"

# 后台运行Kibana
$ nohup ./bin/kibana &
#或者
#nohup ./bin/kibana >logs/kibana.log 2>&1 &

#浏览器访问
http://10.10.1.11:5601/app/kibana. 
#/home

###
# 查看 kibana 
ps -ef|grep kibana
ps -ef|grep 5601
#都找不到
#使用 fuser -n tcp 5601 - 哎呀有了
kill -9  #端口
ps -ef|grep node 或 netstat -anltp|grep 5601
#启动即可 ./kibana
#后台启动:
nohup …/bin/kibana &

2.2 运行并访问

$ nohup /home/app_user/kibana-7.7.1-linux-x86_64/bin/kibana

最终执行是可以配置后台执行

就这样,Kibana安装完成,可以尝试配置一下吧。

参考文献:

https://blog.csdn.net/LXWalaz1s1s/article/details/111697177

https://www.likecs.com/show-306320469.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch8.x版本docker部署说明

前提,当前部署没有涉及证书和https访问 1、环境说明,我采用三个节点,每个节点启动两个es,用端口区分 主机角色ip和端口服务器Amaster192.168.2.223:9200服务器Adata192.168.2.223:9201服务器Bdata,master192.168.2.224:9200服务器Bdata192.1…

打开 IOS开发者模式

前言 需要 1、辅助设备:苹果电脑; 2、辅助应用:Xcode; 3、准备工作:苹果手机 使用数据线连接 苹果电脑; 当前系统版本 IOS 17.3 通过Xcode激活 两指同时点击 Xcode 显示选择,Open Develop…

眼底增强型疾病感知蒸馏模型 FDDM:无需配对,fundus 指导 OCT 分类

眼底增强型疾病感知蒸馏模型 FDDM:fundus 指导 OCT 分类 核心思想设计思路训练和推理 效果总结子问题: 疾病特定特征的提取与蒸馏子问题: 类间关系的理解与建模 核心思想 论文:https://arxiv.org/pdf/2308.00291.pdf 代码:https://github.c…

k8s学习-DaemonSet和Job

1.1DaemonSet是什么 Deployment部署的副本Pod会分布在各个Node上,每个Node都可能运行好几个副本。DaemonSet的不同之处在于:每个Node上最多只能运行⼀个副本。DaemonSet的典型应用场景有: (1)在集群的每个节点上运⾏存…

工业空调转IEC104协议转换网关BE108

随着电力系统信息化建设和数字化转型的进程不断加速,对电力能源的智能化需求也日趋增强。健全稳定的智慧电力系统能够为工业生产、基础设施建设以及国防建设提供稳定的能源支持。在此背景下,高性能的工业电力数据传输解决方案——协议转换网关应运而生&a…

CodeGPT--(Visual )

GitCode - 开发者的代码家园 gitcode.com/ inscode.csdn.net/liujiaping/java_1706242128563/edit?openFileMain.java&editTypelite marketplace.visualstudio.com/items?itemNameCSDN.csdn-codegpt&spm1018.2226.3001.9836&extra%5Butm_source%5Dvip_chatgpt_c…

面向Java开发者的ChatGPT提示词工程(11)扩写

什么是扩写? 扩写是指将较短的文本交给GPT生成更长的文本。比如:根据一组基本指令,写出一封完整的电子邮件;或者根据一系列主题,创作出一篇包含这些主题的文章。 这样的技术,有着广阔的应用场景&#xff…

FPGA 通过 UDP 以太网传输 JPEG 压缩图片

FPGA 通过 UDP 以太网传输 JPEG 压缩图片 简介 在 FPGA 上实现了 JPEG 压缩和 UDP 以太网传输。从摄像机的输入中获取单个灰度帧,使用 JPEG 标准对其进行压缩,然后通过UDP以太网将其传输到另一个设备(例如计算机),所有…

excel统计分析——卡方检验(基本原理)

参考资料:生物统计学 卡方检验(chi-square test)又称检验,是英国数理统计学家Karl Pearson推导出来的,该方法是处理分类变量或离散型数据的一类重要方法。分类变量或离散型数据时生物学和医学领域常见的数据类型。 1、…

后端学习:数据库MySQL学习

数据库简介 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。   接下来,我们来学习Mysql的数据模型,数据库是如何来存储和管理数据的。在介绍 Mysql的数据模型之前,需要先了解一个概念&#xf…

“Morpheus-1”的全新人工智能模型声称能引发清醒梦境

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

vue3 codemirror关于 sql 和 json格式化的使用以及深入了解codemirror 使用json格式化提示错误的关键代码

文章目录 需求说明0、安装1. 导入js脚本2.配置3.html处使用4.js处理数据(1)json格式化处理(2)sql格式化处理 5. 解决问题1:json格式化错误提示报错(1)打开官网(2)打开官网&#xff0…

Python第 1 课 Python 介绍与安装

文章目录 第 1 课 Python 介绍与安装1.Python介绍1.1 面向对象概述1.2 Python 概述1.3 Python 特点 2.查看Python3.pyCharm 安装方法3.1 下载 pyCharm3.2 打开 pyCharm3.3 汉化 pyCharm3.4 pyCharm 的基本介绍和基本使用方法 第 1 课 Python 介绍与安装 1.Python介绍 1.1 面向…

qt 坦克大战游戏 GUI绘制

关于本章节中使用的图形绘制类,如QGraphicsView、QGraphicsScene等的详细使用说明请参见我的另一篇文章: 《图形绘制QGraphicsView、QGraphicsScene、QGraphicsItem、Qt GUI-CSDN博客》 本文将模仿坦克大战游戏,目前只绘制出一辆坦克&#…

应急消防应用步入“繁花”时代,卓翼智能消防无人机顺势而行大有可为

近日,北京卓翼智能科技有限公司(以下简称“卓翼智能”)宣布完成超亿元B轮融资,融资金额高达2.5亿元。这个“智能无人系统”黑马品牌,凭什么出圈?重点发力在哪些领域呢?今天,带你走进…

Spring Boot使用AOP

一、为什么需要面向切面编程? 面向对象编程(OOP)的好处是显而易见的,缺点也同样明显。当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录、性能监控等,如果采用面向对象编程的方法&…

【C语言】socket编程接收问题

一、recv()函数接收到的返回值为0表示对端已经关闭 在TCP套接字编程中,通过recv()函数接收到的返回值为0通常表示对端已经关闭了套接字的发送部分。这是因为TCP是一个基于连接的协议,其中有定义明确的连接建立和终止流程;当对端调用close()或…

matlab appdesigner系列-仪器仪表1-圆形仪表、半圆形仪表、90度仪表、线性仪表

圆形仪表、半圆形仪表、90度仪表、线性仪表,是4种仪表的不同样式。 示例:用滑块,来调整仪表 操作步骤: 1)将圆形仪表、半圆形仪表、90度仪表、线性仪表、滑块拖拽到画布上 2)设置滑块的回调函数 changin…

MySQL 覆盖索引

目录 一、什么是索引 二、索引的有哪些种类? 三、InnoDB的不同的索引组织结构是怎样的呢? 四、什么是覆盖索引 五、如何使用是覆盖索引? 六、如何确定数据库成功使用了覆盖索引呢 总结: 一、什么是索引 索引(在 …

JVM篇:垃圾回收算法

标记清除 通过遍历GC Root后得到不再被引用的对象,对没被引用的对象做一个标记处理,然后对其进行清除。 优点:速度快 缺点:会产生内存碎片,可能会导致空闲的内存足够保存对象,但由于不连续而保存失败。 标…