【DevOps】Elasticsearch在Ubuntu 20.04上的安装与配置:详细指南
目录
一、ES 简介
1、核心概念
2、工作原理
3、 优势
二、ES 在 Ubuntu 20.04 上的安装
1、安装 Java
2、下载 ES 安装包
3、创建 ES 用户
4 、解压安装包
5、 配置 ES
6、 启动 ES
7、验证安装
三、ES 常用命令
1、创建索引
2、 插入文档
3、查询文档
四、ES 配置详解
1、集群配置
2、节点配置
3、 索引配置
4、安全配置
五、ES 高级应用
1、集群管理
2、分片和副本
3、索引优化
4、数据分析
5、 安全管理
六、ES 学习资源
七、总结
八、ES 未来发展
九、建议
Elasticsearch (ES) 作为一款功能强大的开源搜索和分析引擎,在现代数据驱动的应用中扮演着不可或缺的角色。它凭借着高性能、可扩展性和丰富的功能,在搜索、日志分析、数据可视化等领域得到广泛应用。本文将带你深入了解 ES 的核心概念、工作原理,并详细介绍如何在 Ubuntu 20.04 上安装和配置 ES,帮助你快速掌握 ES 的精髓,并将其应用于你的项目中。
一、ES 简介
Elasticsearch 是一个基于 Apache Lucene 的开源搜索引擎,它提供了一种简单、高效的方式来存储、搜索和分析海量数据。ES 采用 RESTful API 进行操作,支持多种编程语言,并提供丰富的插件扩展功能。
1、核心概念
- 索引 (Index):类似于数据库中的表,用于存储特定类型的数据。
- 类型 (Type):在索引中用于区分不同类型的数据,例如文章、用户等。
- 文档 (Document):存储在索引中的单个数据项,类似于数据库中的行。
- 字段 (Field):文档中的单个属性,类似于数据库中的列。
- 集群 (Cluster):多个 ES 节点的集合,用于提高性能和容错性。
- 节点 (Node):集群中的单个 ES 实例,负责存储数据、处理请求等。
- 分片 (Shard):每个索引可以被划分为多个分片,用于提高性能和数据分布。
- 副本 (Replica):每个分片可以有多个副本,用于提高容错性和数据可用性。
2、工作原理
ES 采用倒排索引机制来实现快速搜索。当添加新文档时,ES 会将文档中的文本内容进行分词和索引,并将每个词语与其对应的文档 ID 存储在索引中。搜索时,ES 会根据用户输入的关键词,从索引中查找包含该关键词的文档 ID,并返回相关结果。
3、 优势
- 高性能:基于 Lucene 的倒排索引机制,可以快速搜索海量数据。
- 可扩展性:支持集群部署,可以轻松扩展到多个节点,满足高并发需求。
- 功能丰富:提供丰富的 API 和插件,支持多种搜索功能和数据分析功能。
- 开源免费:完全免费使用,并拥有庞大的社区支持。
二、ES 在 Ubuntu 20.04 上的安装
1、安装 Java
ES 依赖于 Java 运行环境,需要先安装 Java。
sudo apt update
sudo apt install default-jre
2、下载 ES 安装包
从 Elasticsearch 官方网站 Download Elasticsearch | Elastic 下载与操作系统匹配的安装包。
3、创建 ES 用户
为了更安全地运行 ES,建议创建一个专门的用户来运行 ES 服务。
sudo useradd -M -s /bin/bash elasticsearch
4 、解压安装包
将下载的安装包解压到指定的目录。
sudo tar -xzf elasticsearch-7.17.3.tar.gz -C /opt/
sudo chown -R elasticsearch:elasticsearch /opt/elasticsearch-7.17.3
5、 配置 ES
-
修改配置文件:编辑
config/elasticsearch.yml
文件,根据需要修改配置项,例如节点名称、集群名称、数据存储路径等。- 节点名称:
node.name
: 设置节点的唯一标识符。 - 集群名称:
cluster.name
: 设置集群的名称。 - 数据存储路径:
path.data
: 设置数据存储目录。 - 日志存储路径:
path.logs
: 设置日志存储目录。 - 网络配置:
network.host
: 设置 ES 监听的 IP 地址。
node.name: es-node-1 cluster.name: my-elasticsearch-cluster path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 0.0.0.0
- 节点名称:
-
配置 Java 环境变量:编辑
bin/elasticsearch.env
文件,设置 Java 环境变量。export JAVA_HOME=/usr/lib/jvm/default-java
6、 启动 ES
在 ES 安装目录下运行 bin/elasticsearch
命令启动 ES。
sudo -u elasticsearch /opt/elasticsearch-7.17.3/bin/elasticsearch
7、验证安装
访问 http://localhost:9200
,如果返回 ES 版本信息,则表示安装成功。
三、ES 常用命令
1、创建索引
curl -XPUT http://localhost:9200/my_index -H 'Content-Type: application/json' -d'
{"settings": {"number_of_shards": 5,"number_of_replicas": 1}
}
'
2、 插入文档
curl -XPOST http://localhost:9200/my_index/my_type -H 'Content-Type: application/json' -d'
{"title": "My first document","content": "This is the content of my first document."
}
'
3、查询文档
curl -XGET http://localhost:9200/my_index/my_type/_search -H 'Content-Type: application/json' -d'
{"query": {"match": {"title": "first"}}
}
'
4、 删除索引
curl -XDELETE http://localhost:9200/my_index
5、删除文档
curl -XDELETE http://localhost:9200/my_index/my_type/1
四、ES 配置详解
1、集群配置
- cluster.name: 设置集群的名称,所有节点的集群名称必须一致。
- discovery.zen.minimum_master_nodes: 设置成为主节点的最低数量,默认值为 1。
- discovery.zen.ping.unicast.hosts: 设置节点发现机制,默认值为 127.0.0.1。
2、节点配置
- node.name: 设置节点的唯一标识符。
- node.master: 设置节点是否可以成为主节点,默认值为 true。
- node.data: 设置节点是否可以存储数据,默认值为 true。
3、 索引配置
- index.number_of_shards: 设置每个索引的分片数量,默认值为 5。
- index.number_of_replicas: 设置每个分片副本的数量,默认值为 1。
- index.refresh_interval: 设置索引刷新的频率,默认值为 1 秒。
4、安全配置
- xpack.security.enabled: 设置安全功能是否启用,默认值为 false。
- xpack.security.authc.realms.file.order: 设置认证方式,默认值为 1。
- xpack.security.transport.ssl.enabled: 设置 TLS/SSL 是否启用,默认值为 false。
五、ES 高级应用
1、集群管理
ES 支持集群部署,可以将多个节点组成一个集群,提高性能和容错性。
2、分片和副本
ES 可以将索引划分为多个分片,并为每个分片创建多个副本,提高性能和数据可用性。
3、索引优化
可以通过调整索引配置、分词器等方式优化索引性能。
4、数据分析
ES 提供丰富的分析功能,可以进行聚合、统计、趋势分析等操作。
5、 安全管理
ES 支持用户认证、访问控制等安全功能,确保数据安全。
六、ES 学习资源
- 官方网站:Elastic — The Search AI Company | Elastic
- 官方文档:Elasticsearch Guide [8.13] | Elastic
- 社区论坛:Discuss the Elastic Stack - Official ELK / Elastic Stack, Elasticsearch, Logstash, Kibana, Beats and more forums
- GitHub 仓库:GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search Engine
七、总结
ES 是一款强大的搜索和分析引擎,它拥有丰富的功能和广泛的应用场景。本文介绍了 ES 的核心概念、工作原理以及在 Ubuntu 20.04 上的安装和配置方法,希望能帮助你快速上手 ES,并将其应用于你的项目中。
八、ES 未来发展
ES 作为一款快速发展的技术,未来将会继续不断改进和创新,例如:
- 更高性能:不断优化内核,提高搜索和分析速度。
- 更强大功能:增加更多分析功能和插件,满足更多场景需求。
- 更易用性:简化操作流程,降低使用门槛。
- 更安全可靠:提高安全性,增强数据可靠性。
九、建议
- 建议使用专门的用户来运行 ES,提高安全性。
- 建议根据实际需求调整 ES 的配置,以获得最佳性能。
- 建议学习 ES 的 API,使用代码进行操作,提高效率。
- 建议关注 ES 的官方文档和社区论坛,了解最新信息和最佳实践。
希望本文能够帮助你快速入门 ES,并将其应用于你的项目中。
相关文章:

【DevOps】Elasticsearch在Ubuntu 20.04上的安装与配置:详细指南
目录 一、ES 简介 1、核心概念 2、工作原理 3、 优势 二、ES 在 Ubuntu 20.04 上的安装 1、安装 Java 2、下载 ES 安装包 3、创建 ES 用户 4 、解压安装包 5、 配置 ES 6、 启动 ES 7、验证安装 三、ES 常用命令 1、创建索引 2、 插入文档 3、查询文档 四、ES…...

windows内存管理
一 windows系统的内存管理涉及哪些 1.1 虚拟内存管理机制 windows操作系统使用虚拟内存技术,将磁盘文件,通过映射对象(存储在物理内存)关联,映射到虚拟内存作为文件试图。即用户操作"虚拟内存中File View Objec…...

c++ 将指针转换为 void* 后,转换为怎么判断原指针类型?
当将指针转换为void后,擦除了指针所指向对象的类型信息,因此无法通过void指针来判断原始指针的类型。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个…...

Swift 属性
属性 一、存储属性1、常量结构体实例的存储属性2、延时加载存储属性3、存储属性和实例变量 二、计算属性1、简化 Setter 声明2、简化 Getter 声明3、只读计算属性 三、属性观察器四、属性包装器1、设置被包装属性的初始值2、从属性包装器中呈现一个值 五、全局变量和局部变量六…...

基于maxkey接入jeecgboot并实现账户同步
1. 注册应用 1.1 在统一认证中心注册第三方应用 1.1.1 填写应用名和登录地址 1.1.2 填写认证地址授权方式和作用域 1.1.3 选择权限范围并提交 1.2 配置访问权限 1.2.1 指定用户组 1.1.2 选择注册的应用 1.1.3 在单点登录认证页面查看添加的应用 1.3 同步一个第三方应用的账号…...

kafka Kerberos集群环境部署验证
背景 公司需要对kafka环境进行安全验证,目前考虑到的方案有Kerberos和SSL和SASL_SSL,最终考虑到安全和功能的丰富度,我们最终选择了SASL_SSL方案。处于知识积累的角度,记录一下kafka keberos安装部署的步骤。 机器规划 目前测试环境公搭建了三台kafka主机服务,现在将详细…...

[C++]debug介绍+debug时如何查看指针指向内存处的值
一、简介 预备工具和知识:使用使用VSCode使用Debug。 本文简介:本文将简要介绍debug中Continue,Step Over,Step Into和Restart的功能。并介绍如何在debug时查看动态内存地址(指针)的值; 二、D…...
AI学习指南数学工具篇-凸优化在支持逻辑回归中的应用
AI学习指南数学工具篇-凸优化在支持逻辑回归中的应用 一、引言 在人工智能领域,逻辑回归是一种常见的分类算法,它通过学习样本数据的特征和标签之间的关系,来进行分类预测。而在逻辑回归算法中,凸优化是一种重要的数学工具&…...
Flutter 中的 AspectRatio 小部件:全面指南
Flutter 中的 AspectRatio 小部件:全面指南 Flutter 是一个流行的跨平台 UI 框架,它提供了丰富的小部件来帮助开发者构建高质量的应用程序。在 Flutter 的小部件库中,AspectRatio 是一个非常有用的小部件,它允许开发者以一种简单…...

应用程序中的会话管理和Cookie安全指南
应用程序中的会话管理和Cookie安全指南 在现代应用程序中,会话管理和Cookie安全是确保用户信息和数据安全的重要组成部分。本文将详细介绍会话管理的最佳实践以及如何通过安全的Cookie设置来保护会话ID的交换。 单点登录(SSO)及会话管理机制…...

备战秋招c++ 【持续更新】
T1 牛牛的快递 原题链接:牛牛的快递_牛客题霸_牛客网 (nowcoder.com) 题目类型:模拟 审题&确定思路: 1、超过1kg和不足1kg有两种不同收费方案 ---- 起步价问题 2、超出部分不足1kg的按1kg计算 ----- 向上取整 3、向上取整的实现思路…...
整数拆分~
way:process //上一个拆出来的数是pre //还剩下rest需要去拆 //返回拆解的方法数 #include<iostream> using namespace std;//上一个拆出来的数是pre //还剩下rest需要去拆 //返回拆解的方法数 int process(int pre, int rest) {if(rest0) return 1;//因为后…...

【Qt Creator】跨平台的C++图形用户界面应用程序开发框架---QT
🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1.互联网的核心岗位以及职…...

KingbaseES数据库物理备份还原sys_rman
数据库版本:KingbaseES V008R006C008B0014 简介 sys_rman 是 KingbaseES 数据库中重要的物理备份还原工具,支持不同类型的全量备份、差异备份、增量备份,保证数据库在遇到故障时及时使用 sys_rman 来恢复到数据库先前状态。 文章目录如下 1.…...
【CV】视频图像背景分割MOG2,KNN,GMG
当涉及背景分割器(Background Subtractor)时,Mixture of Gaussians(MOG2)、K-Nearest Neighbors(KNN)和Geometric Multigid(GMG)是常用的算法。它们都用于从视频流中提取…...
使用 Python 简单几步去除 PDF 水印
推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI 在处理 PDF 文件时,水印有时会影响文件的可读性或美观性。幸运的是,Python 提供了多种库来操作 PDF 文件,其中 PyMuPDF(又名 fitz…...

【香橙派 AIpro】OrangePi AIpro :教育、机器人、无人机领域的超级AI大脑,华为昇腾处理器驱动的AI开发板新标杆
【OrangePi AIpro:教育、机器人、无人机领域的超级AI大脑,华为昇腾处理器驱动的AI开发板新标杆】 文章目录 一、开箱与初印象1. 初印象2. 上手开机3. 安装和运行 TightVNC 远程桌面3.1. 安装 TightVNC 服务器3.2. 启动 VNC 服务器3.3. 在 Windows 上使用…...

【Mac】 CleanMyMac X for mac V4.15.2中文修复版安装教程
软件介绍 CleanMyMac X是一款为Mac设计的优秀软件,旨在帮助用户优化其设备的性能并提供清理和维护功能。以下是 CleanMyMac X的一些主要功能和特点: 1.系统性能优化:软件可以扫描和修复潜在的性能问题,包括无效的登录项、大文件…...

单片机通信协议(1):SPI简介
关于SPI SPI(串行外设接口)是板载设备间通信接口之一。它是由摩托罗拉公司(飞思卡尔半导体)推出的。由于其简单性和通用性,它被纳入各种外围设备中,并与飞利浦I2C总线并列。 SPI的三线或四线信号数量比IIC…...

免税商品优选购物商城,基于 SpringBoot+Vue+MySQL 开发的前后端分离的免税商品优选购物商城设计实现
目录 一. 前言 二. 功能模块 2.1. 登录界面 2.2. 管理员功能模块 2.3. 商家功能模块 2.4. 用户前台功能模块 2.5. 用户后台功能模块 三. 部分代码实现 四. 源码下载 一. 前言 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...