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

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

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

相关文章

1.6 分组延时,丢失和吞吐量

分组丢失和延时是怎样发生的? 在路由器缓冲区的分组队列  分组到达链路的速率超过了链路输出的能力  分组等待排到队头、被传输 分组排队,传输分组(延时) 分组到达路由器,没有可用的队列,则该分组被丢…

利用audacity和ffmpeg制作测试音频文件

最近要用SIPP测试一个场景,需要发送双声道/16K采样率/16bit量化的PCM流,但是下载的素材往往不能满足参数要求。那么就自己制作。 首先下载mp3文件,并用audacity打开。 接下来,点击菜单栏中轨道-重采样,将采样频率设为1…

Java:String、StringBuffer和StringBuilder的区别

参考: https://blog.csdn.net/kingzone_2008/article/details/9220691 https://blog.csdn.net/itchuxuezhe_yang/article/details/89966303 String 常量字符串,每次修改都是会新创建一个字符串,当要频繁修改字符串的时候不建议使用 String S…

C++实现日期类(类和对象总结与实践)

头文件&#xff1a; 首先&#xff0c;在头文件Date.h中声明日期类 先上代码&#xff0c;然后一步一步解析每个函数 #include<iostream> #include<assert.h> using namespace std;class Date {public:void Print() const;// 获取某年某月的天数// 这个函数会被频…

做好随时离开的准备:前一天还在为618加班到凌晨,第二天就被裁了

今日感悟 最近&#xff0c;一则令人唏嘘的新闻在网络上引起了广泛关注&#xff1a;一名员工前一天还在为618大促活动加班到凌晨&#xff0c;身心疲惫&#xff0c;然而第二天却收到了裁员通知&#xff0c;顿时陷入了失业的困境。 这则新闻不仅揭示了职场竞争的残酷现实&#xff…

有关服务器安全的反思

文章目录 前言MySQL数据库的安全物理服务器总结 前言 人都说学的越多&#xff0c;不懂的东西也就越多&#xff0c;很多人都会有这个感受&#xff0c;面对信息爆炸的互联网时代&#xff0c;有种“学不完&#xff0c;根本学不完”沧桑无力感&#xff0c;最近有关服务器安全的了解…

Flutter 中的 ConstrainedBox 小部件:全面指南

Flutter 中的 ConstrainedBox 小部件&#xff1a;全面指南 在 Flutter 的世界中&#xff0c;布局小部件扮演着至关重要的角色&#xff0c;它们帮助开发者以声明式的方式构建用户界面。ConstrainedBox 是其中一种强大的布局小部件&#xff0c;它允许开发者对子组件的尺寸施加额…

Vistual Studio Release模式 调试方法

在开发过程中&#xff0c;有时会遇到这样的问题&#xff1a;代码在Debug模式下运行良好&#xff0c;但在Release模式下运行却出现错误。通常&#xff0c;这类问题往往与缓冲区越界等内存管理相关的错误有关。在Release模式下&#xff0c;由于编译器的优化&#xff0c;错误更容易…

js全国省市区JSON数据(全)

AreaJson 就是全国省市区的具体数据信息&#xff0c;下面我自定义了一些方法&#xff0c;获取数据用的&#xff0c;不需要的可以删掉&#xff0c;只拿JSON内的数据即可 const AreaJson [{"name": "北京市","city": [{"name": "…

数据结构算法题day02

数据结构算法题day02 【day02】思想代码 【day02】 将两个有序顺序表合并为一个新的有序顺序表&#xff0c;并由函数返回结果顺序表。思想 两个有序顺序表&#xff0c;AB本身就是由大到小或者由小到大排序的顺序表。 思路比较经典&#xff0c;希望大家记忆 将AB中较小的依次存…

Git钩子(Hooks)之commit之前自动执行脚本

介绍 官方文档&#xff1a; 英文&#xff1a;https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks中文&#xff1a;https://git-scm.com/book/zh/v2/自定义-Git-Git-钩子 下面只复制了pre-commit部分文档&#xff0c;其他详见官方文档。 Git Hooks Like many other…

【绝地求生game】

编写一个完整的《绝地求生》这样的游戏程序代码是一个庞大的工程&#xff0c;涉及到成千上万行的代码和复杂的多模块协作。在这里&#xff0c;我可以提供一个非常简化的示例&#xff0c;用于演示游戏编程中可能用到的基本概念&#xff0c;比如玩家移动、基本物理和简单的游戏逻…

【Java面试】四、MySQL篇(上)

文章目录 1、定位慢查询2、慢查询的原因分析3、索引3.1 数据结构选用&#xff1a;二叉树 & 红黑树3.2 数据结构选用&#xff1a;B树 4、聚簇索引、非聚簇索引、回表查询4.1 聚簇索引、非聚簇索引4.2 回表查询 5、覆盖索引、超大分页优化5.1 覆盖索引5.2 超大分页处理 6、索…

联发科MT8370平台Genio 510物联网应用程序处理器详细规格参数

MT8370是一款高度集成、功能强大的平台&#xff0c;专为各种人工智能(AI)和物联网(IoT)用例而设计&#xff0c;这些用例需要高性能边缘处理、先进的多媒体和连接功能、多个高分辨率摄像头、连接的触摸屏显示器以及多任务高级操作系统(HLOS)的使用。http://Genio 510 (MT8370) E…

Mybatis源码剖析

文章目录 一、前置1.1概念ORMSqlSession会话 二、快速入门2.1 SpringBoot整合Mybatis2.2 XML配置2.2.1 路径位置2.2.2 名称2.2.3 configuration标签内容环境environments标签映射器mappers标签 2.3 Mapper接口2.3.1 单Mybatis项目2.3.2 SpringBoot整合mybatis2.3.3 m整合mybati…

字符串函数(2)<C语言>

前言 快一周没更博客了&#xff0c;最近有点忙&#xff0c;今天闲下来了&#xff0c;还是不行&#xff0c;继续干&#xff0c;书接上回继续介绍字符串函数&#xff1a;strncpy()、strncat()、strcmp()、strtok()使用、strstr()使用以及模拟实现、strerror()使用。 strncpy()、s…

blender serpens3 个人总结

Serpens 全节点个人备注 快捷键 &#xff1a;shift v&#xff1a; 从复制版 添加执行操作&#xff08;blender任何执行动作按钮&#xff0c;右键可以获取操作命令&#xff09; 概念分析&#xff1a; 属性&#xff08;Properties&#xff09;&#xff1a;用于定义持久性数据…

揭秘网络编程:同步与异步IO模型的实战演练

摘要 ​ 在网络编程领域&#xff0c;同步(Synchronous)、异步(Asynchronous)、阻塞(Blocking)与非阻塞(Non-blocking)IO模型是核心概念。尽管这些概念在多篇文章中被广泛讨论&#xff0c;它们的抽象性使得彻底理解并非易事。本文旨在通过具体的实验案例&#xff0c;将这些抽象…

在React中使用Sass实现Css样式管理-10

0. 什么是Sass Sass(Syntactically Awesome Stylesheets)是一个 CSS 预处理器&#xff0c;是 CSS 扩展语言&#xff0c;可以帮助我们减少 CSS 重复的代码&#xff0c;节省开发时间&#xff1a; Sass 引入合理的样式复用机制&#xff0c;可以节约很多时间来重复。支持变量和函…

【HM】简单说明白:装饰器@State、@Prop、@Link、@Provide、@Consume修饰变量,@Watch监听变量状态发生变化

首先要明白什么是“状态变量”&#xff1f;即被状态装饰器&#xff08;State、Prop、Link、Provide、Consume&#xff09;修饰的变量&#xff0c;比如 State str : string; str就是状态变量。状态变量值的改变会引起UI界面重新渲染。 State State装饰的变量&#xff0c;是私…