【Elasticsearch 入门公开课】在Docker环境中,实操详解 ELK 基本概念-回顾篇(2)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 『Elasticsearch 入门课程23讲』目前已播出至第10讲,本周通过阮一鸣老师细致的讲解及实操,让大家了解如何通过 Docker 运行 Elasticsearch Kibana 、如何安装 Logstash 并导入数据 、对 Elasticsearch 关于索引、文档、REST API、节点、集群、分片及副本有了一个系统的了解。

讲师:阮一鸣——eBay Pronto 平台技术负责人、极客时间『Elasticsearch 核心技术与实战』课程讲师
课程为了更多同学能快速体验 Elasticsearch,为大家提供了免费的阿里云 Elasticsearch (3节点1核2G)的测试环境>>>>去开通

image.png

课程回顾

7 | 在Docker容器中运行Elasticsearch Kibana和 Cerebro
8 | Logstash安装与导入数据
9 | 基本概念:索引、文档和REST API
10 | 基本概念:节点、集群、分片及副本

知识点一:在 Docker 容器中运行 Elasticsearch Kibana和 Cerebro

lasticsearch 成立之初就开始拥抱容器技术,官方不仅提供 Docker Image,同时在2019年5月,在发布7.1版本时,免费支持并提供 Elatic Operator on Kubernetes。而Cerebro 可以很好的让大家学习了解 Elasticsearch 分布式特性。

image.png

关于在本机运行 Docker 环境去启动 Elasticsearch 有两点好处

  • 可以通过一行命令,快速搭建环境
  • 非常快捷的清除数据

Demo 部分请跟随课程,动手试试吧

image.png

课程相关资料访问及下载

下载安装 Docker 与 Docker Compose
https://www.docker.com
https://docs.docker.com/compose
https://docs.docker.com/machine/install-machine/

Docker - Compose 相关命令

• 运行 Docker- compose up
• docker Compose down
• docker Compose down - v
• docker stop / rm containerID

GitHub:https://github.com/onebirdrocks/geektime-ELK/


知识点二:Logstash 安装与导入数据

我们通过 Elastic 官网下载并安装 Logstash,并在 Docker 本地运行,下载需要确保版本号跟 Elasticsearch 相一致;

image.png

下载安装 Logstash:

http://www.elastic.co/downloads/logstash
开通阿里云 Logstash 2核4G 1个月免费测试环境_点击开通

通过Movieiens 测试数据集,写了一个配置文件,并通过 Logstash 将这些数据写入 Elasticsearch,这些测试数据对于我们学习查询 Elasticsearch 起到非常关键的作用

image.png

下载 Movie Len 数据:

https://grouplens.org/datasets/movielens/

Demo 部分请跟随课程,动手试试吧

image.png

知识点三:基本概念(1)- 索引,文档和 REST API

Elasticsearch 中的“索引”和“文档”是一个逻辑概念,偏向与开发者视角;“文档”是所有可能搜索数据的最小单位,“索引”是相似文档的集合。

image.png

关于“文档”

在 Elasticsearch 中,“文档”以序列化成 JSON 格式保存,每个文档均对应一个 Unique ID和元数据,如 【_index-索引名】、【_type-类型名】等

image.png

关于“索引”

在 Elasticsearch 中“索引”是相似文档的集合,每一个“索引”都有属于自己的 Mapping 定义文档,用于描述包含的字段名和类型。每一个索引可以创建一个 “Type”(Elasticsearch 7.0之后),每个“Type”底下有相同结构的文档。

image.png

与关系型数据库类比时,当用于全文检索,Elasticsearch 比较有优势,往往会将Elasticsearch 与数据库组合使用。

image.png

关于“REST API”

“REST API”是 Elasticsearch 为了方便其他语言整合,对程序做调用。当程序需要与 Elasticsearch 做集成时,我们仅需发出 HTTP 的请求,就可以得到相应的结果。

image.png

Demo 部分请跟随课程,动手试试吧

• 查看一些与 index 的相关 API
• 进入 Kinbana Index Management 界面,探索 Index 相关的信息

知识点四:基本概念(2)- 集群 / 节点 / 分片 / 副本

关于“集群”

Elasticsearch 的“集群”是一个分布式集群,满足“高可用”、“可拓展”的特性。不仅提供存储的水平扩容,而且当出现部分节点停止服务,也不影响整个集群的服务。
Elasticsearch 官方也提供 CAT API,来帮助了解“集群”健康状况,用“green”、“yellow”、“red”,分别代表集群“主、副分片分配正常”、“主分片正常分配,副本未正常分配”、“主分片未正常分配

image.png

关于“节点”

“节点”是一个 Elasticsearch 的实例,本质上是一个 JAVA 的进程,当节点启动后,系统会分配一个 UID,保存着在 Data 目录下。

不同的节点,会承担不同的角色

image.png

其他还有很多类型节点,比如需要做日志 Case 时,有“Hot & Warm Node”、用于机器学习的“Machine Learning Node”;

每个节点启动,都会读取 Elasticsearch YML 配置文件,用于决定自己承担说明角色

image.png

关于“分片/副本”

“分片”分为 Primary Shard & Replica Shard(主、副分片)

image.png

通过分片,将数据分布在集群节点上,生产环境中,需要提前规划分片容量

当分片设置过小

  1. 导致后续无法增加节点实现水平扩展
  2. 当分片数据量超过容量,重新分配数据会耗费过多时间

当分片设置过大

  1. 影响搜索结果相关性打分。
  2. 导致统计不准确,影响性能造成浪费。

image.png

Demo 部分请跟随课程,动手试试吧

• 查看一个集群的健康状态 http://localhost:9200/_cluster/health
• CAT API

  1. http://localhost:9200/_cat/nodes
  2. 查看索引和分片

• 设置分片数
• Kibana+Cerebro 界面介绍

下周课程预告


点击预约课程

11 | 文档的基本CRUD与批量操作
12 | URI Search详解
13 | 通过Analyzer进行分词
14 | Search API概览

相关活动


更多折扣活动,请访问阿里云 Elasticsearch 官网

• 阿里云 Elasticsearch 商业通用版,1核2G首月免费
阿里云 Elasticsearch 日志增强版,首月六折,年付六折
阿里云 Logstash 2核4G首月免费


image.png

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
5月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
156 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
20天前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
101 18
|
1月前
|
Ubuntu 机器人 开发者
Docker环境下的ROS Noetic:Ubuntu 20.04 系统下的解决方案
这就是在Docker环境下安装ROS Noetic在Ubuntu 20.04系统的一种简单方法,希望能对你有所帮助。
149 16
|
2月前
|
算法 Shell 定位技术
在Docker环境下搭建openvslam/orb_slam3的步骤和问题总结
总的来说,搭建openvslam或orb_slam3的过程需要一些耐心和技术知识,但只要你遵循上述步骤,并且在遇到问题时进行适当的调试,你应该能够成功搭建并运行openvslam或orb_slam3。
111 11
|
3月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
184 28
|
9月前
|
存储 Java API
Elasticsearch 7.8.0从入门到精通
这篇文章详细介绍了Elasticsearch 7.8.0的安装、核心概念(如正排索引和倒排索引)、RESTful风格、各种索引和文档操作、条件查询、聚合查询以及在Spring Boot中整合Elasticsearch的步骤和示例。
413 1
Elasticsearch 7.8.0从入门到精通
|
7月前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
2681 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
4月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
10月前
|
数据可视化 Java Windows
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
本文介绍了如何在Windows环境下安装Elasticsearch(ES)、Elasticsearch Head可视化插件和Kibana,以及如何配置ES的跨域问题,确保Kibana能够连接到ES集群,并提供了安装过程中可能遇到的问题及其解决方案。
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
|
7月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
255 3

相关产品

  • 检索分析服务 Elasticsearch版