【DevOps】Elasticsearch在Ubuntu 20.04上的安装与配置:详细指南

news2024/11/17 5:51:36

目录

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

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

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

相关文章

Weblogic SSRF漏洞 [CVE-2014-4210]

漏洞复现环境搭建请参考 http://t.csdnimg.cn/svKal docker未能成功启动redis请参考 http://t.csdnimg.cn/5osP3 漏洞原理 Weblogic的uddi组件提供了从其他服务器应用获取数据的功能并且没有对目标地址做过滤和限制,造成了SSRF漏洞,利用该漏洞可以向内…

git工作流程

以财务开发为例子: 1. 新建分支 1.1. upstream新建分支:finance-feature 1.2. origin新建对应分支:finance-feature 1.3 新建本地分支 git branch finance-feature 注: 同步远程分支:git fetch upstream feature…

【Flutter】KeyAnimatedList组件

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月28日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

微软联手清华,AI注释让文本到图像生成更符合人类偏好

获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 摘要 本研究展示了利用人类偏好数据集来精细调整文本到图像生成模型的潜力,增强了生成图像与文本提示之间的一致性。尽管取得了进展,现有的人类偏好数据集要么构建成…

[Algorithm][动态规划][简单多状态DP问题][买卖股票的最佳时机 III][买卖股票的最佳时机 Ⅳ]详细讲解

目录 1.买卖股票的最佳时机 III1.题目链接2.算法原理详解3.代码实现 2.买卖股票的最佳时机 IV1.题目链接2.算法原理详解3.代码实现 1.买卖股票的最佳时机 III 1.题目链接 买卖股票的最佳时机 III 2.算法原理详解 注意:本题为了便于初始化,有较多细节服…

对竞品分析的理解

一、竞品分析是什么 竞品分析即对竞争对手进行分析,是市场研究中的一项重要工作,它可以帮助企业了解竞争对手的产品、策略、市场表现等信息,通过竞品分析可以为自己的产品制定更加精准的策略。 二、为什么要做竞品分析 1.了解市场情况 了解…

如果创办Google

本文是一篇演讲稿,来自于《黑客与画家》一书的作者保罗*格雷厄姆,被称为硅谷创业之父。这是他为14至15岁的孩子们做的一次演讲,内容是关于如果他们将来想创立一家创业公司,现在应该做些什么。很多学校认为应该向学生们传授一些有关…

【DrissionPage爬虫库 1】两种模式分别爬取Gitee开源项目

文章目录 DrissionPage爬虫库简介1. 浏览器操控模式(类似于游戏中的后台模拟鼠标键盘)2. 数据包收发模式(类似于游戏中的协议封包) 实战中学习需求:爬取Gitee开源项目的标题与描述解决方案1:用数据包方式获…

【常用的队列总结】

文章目录 队列的介绍Queue队列的基本概念与操作队列的基本概念 常见的队列介绍非阻塞队列LinkedList:ArrayDeque:PriorityQueue: 阻塞队列ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue DelayQueueSynchronousQueue 队列的介绍 Queue队列的基本概念与操作 在 …

Linux用docker安装ElasticsearchSpringBoot整合ES

一. 部署Elasticsearch 1. docker查询docker容器中的es docker search elasticsearch 2. 安装(PS:查看自己的springBoot的版本号 对应的es版本安装) docker pull elasticsearch:7.6.23. 查看已安装的docker镜像 docker images4. 创建挂…

【会议征稿,SPIE独立出版】第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024)

第五届计算机视觉与数据挖掘国际学术会议(ICCVDM 2024)将于2024年7月19-21日在中国长春举行。此前,ICCVDM系列会议于2020年在中国西安、2021年在中国长沙(线上)、2022年在中国呼伦贝尔(线上线下&#xff09…

【Java】JavaSE概述

1、简介 Java SE(Java Platform, Standard Edition)是Java技术的核心平台,它提供了Java编程语言、Java虚拟机(JVM)以及Java核心类库和API。Java SE主要用于开发和部署桌面应用程序、服务器应用程序、命令行工具和嵌入…

DBeaver怎么将编辑栏内容放大

1、窗口–》编辑器–》放大 2、ctrl 3、页面结果展示

前端大师-高级Web开发测验

目录 前言 1.按正确的执行顺序排列脚本 2.哪些说法是正确的?(D) 3.填写正确的术语 4.程序的输出 5.将资源提示与其定义匹配 6.以下程序的输出是? 7.将PerformanceNavigationTimings按正确的顺序排列 8.将缓存指令与其定义…

【动手学PaddleX】谁都能学会的基于迁移学习的老人摔倒目标检测

本项目使用PaddleX搭建目标检测模块,在一个精选的数据集上进行初步训练,并在另一个老年人跌倒检测的数据集上进行参数微调,实现了迁移学习的目标检测项目。 1.项目介绍 迁移学习是非常有用的方法,在实际生活中由于场景多样&…

【ai】pycharm设置软件仓库编译运行基于langchain的chatpdf

联想笔记本 y9000p创建python工程: 使用langchain支持openai的向量化embedding安装软件包 发现没有openai ,添加软件仓库打开工具窗口 点击设置

osg的了解

osg开发配置与第一个osg程序-CSDN博客 #include <osg/Geode> #include <osg/ShapeDrawable> #include <osgViewer/Viewer> #include <iostream>int main(int argc, char** argv) {std::cout << "Hello, osg!" << std::endl;osg:…

加速模型训练 GPU cudnn

GPU的使用 在定义模型时&#xff0c;如果没有特定的GPU设置&#xff0c;会使用 torch.nn.DataParallel 将模型并行化&#xff0c;充分利用多GPU的性能&#xff0c;这在加速训练上有显著影响。 model torch.nn.DataParallel(model).cuda() cudnn 的配置&#xff1a; cudnn.…

MER 2024 第二届多模态情感识别挑战赛

多模态情感识别是人工智能领域的一个活跃研究课题。它的主要目标是整合多种模态来识别人类的情绪状态。当前的工作通常为基准数据集假设准确的情感标签&#xff0c;并专注于开发更有效的架构。然而&#xff0c;现有技术难以满足实际应用的需求。 清华大学陶建华教授联合中国科学…

体育赛事直播系统源码开发:社区论坛模块如何实现引流与增收双赢

在当今数字化时代&#xff0c;体育直播平台不仅是赛事观看的窗口&#xff0c;更是一个互动和交流的社区&#xff0c;以及是一场关于用户体验、用户粘性以及商业模式创新的综合较量。为了在这片红海市场中脱颖而出&#xff0c;平台必须采取更加精细化和多元化的运营策略。其中&a…