【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,并将其应用于你的项目中。

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

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

相关文章

操作系统 - 输入/输出(I/O)管理

输入/输出(I/O)管理 考纲内容 I/O管理基础 设备:设备的基本概念,设备的分类,I/O接口 I/O控制方式:轮询方式,中断方式,DMA方式 I/O软件层次结构:中断处理程序,驱动程序,…

VM中Ubuntu16.04的下载以及ROS—kinetic的版本下载

一、Ubuntu镜像地址 转载备份一下; 官方下载地址(不推荐) https://www.ubuntu.com/downloadhttps://www.ubuntu.com/download 中科大源 Index of /ubuntu-releases/16.04/http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/ 阿里云开…

使用 Django ORM 进行数据库操作

文章目录 创建Django项目和应用定义模型查询数据更新和删除数据总结与进阶聚合和注解跨模型查询原始SQL查询 Django是一个流行的Web应用程序框架,它提供了一个强大且易于使用的对象关系映射(ORM)工具,用于与数据库进行交互。在本文…

0基础认识C语言(理论知识)

为了给0基础一个舒服的学习路径,就有了这个专栏希望带大家一起进步。 话不多说,开始正题。 一、C语言的一段小历史 C语言的设计要追溯到20世纪60年代末和70年代初,在那个时代美国有这么一号人叫做丹尼斯.里奇,他和同事肯.汤普逊…

学习编程对英语要求高吗?

学习编程并不一定需要高深的英语水平。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我在后台发给你。 虽然一些编程资源和文档可能…

cesium开发实例分享

反正 cesium 看到的效果几乎都有

大字体学生出勤记录系统网页HTML源码

源码介绍 上课需要一个个点名记录出勤情况,就借助AI制作了一个网页版学生出勤记录系统, 大字体显示学生姓名和照片,让坐在最后排学生也能看清楚,显示姓名同时会语音播报姓名, 操作很简单,先导入学生姓名…

AI智能体|扣子Coze文生图功能接入微信公众号

大家好,我是无界生长。 AI智能体|扣子Coze文生图功能接入微信公众号本文分享了如何将Coze平台的文生图功能接入微信公众号的详细操作流程,包括创建图像流、创建并配置Bot、设置提示词和开场白、调试、发布等步骤。如果看完还没学会的话&…

云主机选购指南:如何选择适合自己的云主机

一、认识移动云 移动云是中国移动提供的专业云服务品牌,基于移动云计算技术构建。它实现了云网一体化,确保客户享有安全可控的服务。通过充分利用移动云计算能力,打造了N31X资源布局,结合各省级数据中心,通过专线互联…

基于OrangePi AIpro的后端服务器构建

一. OrangePi AIpro简介 1.1 OrangePi AIpro外观 1.2 OrangePi AIpro配置 OrangePi AIpro(8T)采用昇腾AI技术路线,具体为4核64位处理器AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB…

VS Code开发Python配置和使用教程

在Visual Studio Code (VSCode) 中配置和使用Python进行开发是一个相对直接的过程,下面是一份简明的指南,帮助你从零开始设置环境: 1. 安装Visual Studio Code 首先,确保你已经安装了Visual Studio Code。如果还没有安装&#x…

图生文模型llava

llava-llama-3-8b-v1_1 是一个 LLaVA 模型,由 XTuner 使用 ShareGPT4V-PT 和 InternVL-SFT 从 meta-llama/Meta-Llama-3-8B-Instruct 和 CLIP-ViT-Large-patch14-336 进行微调。 https://huggingface.co/xtuner/llava-llama-3-8b-v1_1-gguf

AURIX TC3xx单片机介绍-启动过程介绍1

从各个域控制器硬件解决方案来看,MPU可能来自多个供应商,有瑞萨,有NXP等,但对于MCU来说,基本都采用英飞凌TC3xx。 今天我们就来看一下TC3xx的启动过程,主要包含如下内容: uC上电过程中,会经过一个上电时序,从复位状态“脱离”出来;Boot Firmware是复位后第一个执行的…

设置 border 边框单侧样式 - HarmonyOSNext

设置 border 边框单侧样式,通过 api 中查看 border(value: BorderOptions): T; BorderOptions 又包含了若干个子属性 1.width?: EdgeWidths | Length; 2.color?: EdgeColors | ResourceColor; 3.radius?: BorderRadiuses | Length; 4.style?: EdgeStyles | BorderStyle; 其…

【Docker】docker-compose 常用命令

启动服务: docker-compose up 如果你想在后台运行服务,可以添加 -d 标志: docker-compose up -d 开启所有服务 docker-compose start 停止服务: docker-compose down 查看服务状态: docker-compose ps 查看…

React(4): 使用 unocss + react-ts + vite 开发

React(4): 使用 unocss react ts 开发 之前一直使用 css-module 开发页面,觉得太过繁琐,看到 unocss , 眼前一亮,觉得可以拿来快速开发页面(偷懒) vite官网 unocss tailwindcss 说明 该方法需要对 tailwindcss 有一…

ROS学习笔记(16):夹缝循迹

0.前言 在笔记的第15期对巡墙驾驶的原理进行了简单讲解,而这期我们来讲一下夹缝循迹,也常被叫follow the gap,也更新一些概念。 1.探索式路径规划与避障 1.概念 无预先建图的路径规划叫探索式路径规划,例如巡墙循迹和夹缝循迹&…

操作系统 - 文件管理

文件管理 考纲内容 文件 文件的基本概念;文件元数据和索引节点(inode) 文件的操作:建立,删除,打开,关闭,读,写 文件的保护;文件的逻辑结构;文件的物理结构目录 目录的基…

ubuntu_概念

su(switch user) wget(Web Get) cd(change directory) dpkg(Debian Packager)为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。 chmod(Change Mode)用于改变文件或目录的权限 ps(Process Status)进程状态 grep(Global Regular Expression Print)…

Linux shell编程学习笔记50:who命令

0 前言 2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。比如,我们可以使用who命令来收集当前已登陆系统的用户信息,当前运行级别等信息。 1. who命令 的功能、格式和选项…