大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询

news2024/10/24 16:58:53

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(正在更新…)

章节内容

上节我们完成了如下的内容:

  • Apache Kylin 流式构建
  • 完整的过程记录

请添加图片描述

ELK

集中式日志系统

日志,对于任何系统来说都是重要的组成部分,在计算机系统里面,更是如此。但是由于现在的计算机系统大多比较复杂,狠毒哦系统都不是在一个地方,甚至都是跨国界的,即使在一个地方的系统,也有不同的来源,比如:操作系统、应用服务、业务逻辑等等。他们都在不停的产生各种各样的日志数据,根据不完全统计,我们每天大约要生产2EB的数据。

面对海量的数据,又是分布式在各个不同的地方,如果我们需要去查找一些重要的信息,难道还是使用传统的方法,去登陆到一台机器上看看吗?看来传统的工具和方法是非常笨拙和低效的。于是,一些聪明人就提出了建立一套集中的方法,把不同来源的数据集中整合到一个地方。
一个完整的集中式日志系统,是离不开以下几个主要特点的:

  • 收集-能够采集多种来源的日志数据
  • 传输-能够稳定的把日志数据传输到中央系统
  • 存储-如何存储日志数据
  • 分析-可以支持UI分析
  • 警告-能够提供错误报告,监控机制

#ELK协议栈介绍和体系结构

在这里插入图片描述
ELK其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写(Elasticsearch ES),Logstash、Kibana。这三款都是开源软件,配合使用,而先后又归于 Elasttic.co 公司名下,简称 ELK 协议栈。

Elasticsearch

Elasticsearch 是一个基于 Lucene 的开源搜索引擎,主要用于实时全文搜索、分析、日志管理和数据存储。由于其高度扩展性和分布式架构,Elasticsearch 被广泛应用于企业搜索、监控系统、日志分析、推荐系统等场景。

主要特点

  • 实时分析
  • 分布式实时文件存储,并将每一个字段都编入索引
  • 文档导向,所有的对象全部是文档
  • 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards和Replicas)。
  • 接口友好、支持JSON

核心功能

  • 全文搜索:Elasticsearch 可以快速、高效地进行全文搜索,支持模糊匹配、通配符查询、布尔查询等。
  • 分布式架构与高可用性:集群由多个节点组成,每个节点负责不同的数据分片,确保数据在多个节点上冗余存储,以提高系统的容错能力和高可用性。
  • 实时数据分析:支持实时数据插入、更新和查询,适合日志分析、监控等对时效性要求高的应用场景。
  • 支持多种数据类型:支持结构化、半结构化和非结构化数据,如 JSON、文本、地理位置数据等。
  • RESTful API:Elasticsearch 采用 RESTful 风格的 API,通过 HTTP 接口与客户端交互,易于集成。

基本架构

  • 集群(Cluster):集群是多个 Elasticsearch 节点的集合,每个集群有唯一的名字,保证数据的一致性。
  • 节点(Node):集群中的每个节点就是一个 Elasticsearch 实例。不同节点可以承担不同角色(如主节点、数据节点、协调节点)。
  • 索引(Index):索引相当于关系型数据库中的表,是数据的逻辑集合。每个索引包含一个或多个文档。
  • 文档(Document):文档是 Elasticsearch 中存储的基本单元,使用 JSON 格式表示,每个文档都有唯一的 _id。

分片与副本(Shard & Replica)

为了实现水平扩展,索引被分成多个主分片(Primary Shard)。每个主分片可以有多个副本(Replica Shard),提高容错性和读取性能。

查询与分析

查询 DSL(Query DSL):Elasticsearch 使用 JSON 格式的 DSL(Domain-Specific Language)进行查询,包括:

  • Match Query:进行全文搜索。
  • Term Query:精确匹配某一字段的值。
  • Range Query:进行范围查询(如时间范围)。
  • Bool Query:组合多个查询条件(如 AND、OR)。

聚合(Aggregation):用于对大数据集进行分组统计和分析,如求平均值、最大值、最小值等。支持以下类型:

  • Bucket Aggregation:按条件分组,如基于时间的日期直方图。
  • Metric Aggregation:求和、计数、平均值等。
  • Pipeline Aggregation:基于前一个聚合结果计算的二次聚合。

典型应用场景

  • 日志分析和监控:与 Logstash 和 Kibana 组合形成 ELK(Elastic Stack),用于实时日志监控和数据可视化。
  • 企业级搜索引擎:支持全文搜索、推荐系统、网站内容搜索等。
  • 电商平台:用于实现商品搜索和推荐功能。
  • 地理空间数据查询:支持 geo_point 和 geo_shape 类型数据,用于存储和分析位置数据。
  • 数据仓库分析:支持大数据实时分析,替代部分传统 OLAP 系统。

Logstash

Logstash是一个具有实时渠道能力的数据收集引擎,使用JRuby语言编写,作者是世界著名的运维工程师乔丹西塞(JordanSissel)
主要特点有:

  • 几乎可以访问任何数据
  • 可以和多种外部应用结合
  • 支持弹性扩展
  • Shipper - 发送日志数据
  • Broker - 收集数据 缺省内置Redis
  • Indexer - 数据写入

Kibana

Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写的,为 Elasticsearch 提供可视化分析和Web平台,它可以在Elasticsearch的索引中查找,交互数据,生成各种维度的表图。

ELK整体架构

在这里插入图片描述
参考文档

  • ELK官网:https://www.elastic.co/
  • ELK官网文档:https://www.elastic.co/guide/index.html
  • ELK中文手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
  • ELK中文社区:https://elasticsearch.cn/
  • ELK API :https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/travelansport-client.html

Elasticsearch

简单介绍

Elasticsearch简称为ES,ES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据,本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。ES也使用Java开发并使用Lucene作为其核心实现所有索引和搜索功能,但是它的目的是通过简单的RESTFUL API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

使用案例

  • 2013年初,GitHub抛弃了Solr,采取Elasticsearch来做PB级的搜索,“Github使用Elasticsearch搜索20TB的数据,包括13亿文件和1300亿航代码”
  • 维基百科,启动Elasticsearch为基础的核心搜索架构
  • SoundCloud,SoundCloud使用Elasticsearch为1.8亿用户提供即时而精准的音乐搜索服务
  • 百度,百度目前广泛使用Elasticsearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示、辅助定位分析实例异常或业务异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等)。单集群最大100台机器,200个ES节点,每天导入30TB+数据。
  • 新浪使用ES分析处理32亿条实时日志
  • 阿里使用ES构建自己的日志采集和分析系统

对比Solr

  • Solr 利用 ZooKeeper 进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。
  • Solr支持更多格式的数据,而Elasticsearch仅支持JSON文件格式
  • Solr官方提供的功能更多,而Elasticsearchb本身更注重与核心功能,高级功能多有第三方插件提供。
  • Solr在传统的搜索应用中表现好于Elasticsearch,但在实时搜索应用时效率远低于Elasticsearch

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

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

相关文章

ARIMA 模型初体验 —— 预测股票数据

第 1 步,从 twelvedata 上获取苹果 11 号 15:30 到 16:00 的 OHLC、成交量 数据。 第 2 步,编写 Python 代码(实际上可以用 R 语言,R 语言从语言的级别对分析预测提供了支持,而 Python 需要第三方库)。 …

Yolov8 搭配 Frequency-aware Feature Fusion for Dense Image Prediction

个人觉得论文赞的地方 https://github.com/Linwei-Chen/FreqFusion https://www.arxiv.org/abs/2408.12879 因为我有个项目需要训练边界模糊的情况,但又需要目标能在模糊里凸显出来,就是看到这张图以后觉得很赞,边界变得清晰有特征是我想要的,所以尝试用了 使后感 哈哈…

【CSS3】css开篇基础(2)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

数据结构-5.2.树的性质

一.树的常考性质: 性质1:结点数 总度数 1(结点的度:结点分支的数量) 一个分支中,如父结点B,两个子结点为E和F,结点B的度的值为2,等于子结点数量,加上这一个父结点(父结点只能有一…

【计算机网络 - 基础问题】每日 3 题(三十九)

✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞…

大型语言模型(LLMs)关键技术指南

在AI这个超火的领域,打好基础真的超级重要,尤其是当你开始研究那些超大型的语言模型,也就是LLMs的时候。这个指南就是想帮新手们把那些听起来高大上的概念变得简单易懂,比如神经网络、自然语言处理(NLP)还有…

【ROS2实操一】话题通信与自定义消息

一、准备工作 1.请先创建工作空间 mkdir -p ws01_plumbing/src //创建工作空间 colcon build //在工作空间目录下编译 2.创建专门的接口功能包定义接口文件(需要注意的是,目前为止无法在Python功能包中定义接口文件),终端下进…

线程基础学习

线程的实现 通过实现Runnable接口的方式,实现其中的run方法。继承Thread类,然后重写其中的run方法。通过线程池创建线程,默认采用DefaultThreadFactory。有返回值的callable,实现callable接口,实行call方法。 本质上…

wait和waitpid

在Linux中,wait 和 waitpid 是用于进程控制的系统调用,它们主要用来让父进程等待子进程的终止,并获取子进程的退出状态。下面详细介绍它们的用法和区别。 1. wait() 函数 wait() 会阻塞调用进程,直到一个子进程终止。它的典型用…

怎么ping网络ip地址通不通

怎么Ping网络IP地址通不通?要检查网络中的IP地址是否连通,可以使用‌Ping命令。Ping命令通过发送ICMP(Internet Control Message Protocol,因特网控制消息协议)Echo请求报文并等待回应,来判断目标主机是否可…

ARP限制网速攻击

ARP限制网速攻击 大家没想到吧,ARP还能限制对方网速。当kali欺骗了网关和受害者的时候,受害者访问网络就需要经过kali的网卡,那我们限制kali网卡的速度或者转发的速度就可以限制对方的网速。这里可以使用的工具有tc、iptables、WonderShaper…

Unix Standardization and Implementations

Unix标准化 在Unix未制定较为完备的标准时,各个平台的系统调用方式各异,所开发出的应用程序存在可移植性差的特点,因此人们呼吁指定一套Unix标准来规范接口,增加应用程序的可移植性。所谓Unix标准即适用于Unix环境下的一系列函数…

AI 时代技术盛宴 —— 稀土掘金 × 豆包 MarsCode 青训营等你来!

各位 CSDN 的小伙伴们,今天我要给大家带来一个超级棒的消息!稀土掘金与豆包 MarsCode 强强联手,共同打造的青训营再次上线啦! 在这个飞速发展的 AI 时代,这场青训营玩出了不一样的精彩。它携手 AI 伙伴豆包 MarsCode&…

一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景

文章目录 一、常用数据库概览1.1 关系型数据库1.2 非关系型数据库1.2.1 KV数据库1.2.2 文档型数据库1.2.3 列式存储数据库1.2.4 图数据库 1.3 SQL与NoSQL区别1.3.1 结构化与非结构化1.3.2 关联和非关联1.3.3 查询方式1.3.4 事务1.3.5 总结 二、MySQL三、PostgreSQL3.1 特点、适…

计组_中断响应条件

2024.10.13:计算机组成原理学习笔记 中断响应条件 条件1:CPU要处于开中断状态条件2:至少要有一个未被屏蔽的中断请求屏蔽?中断优先级屏蔽字的作用 条件3:当前指令刚执行完 条件1:CPU要处于开中断状态 当CP…

Redis:分布式 - 主从复制

Redis:分布式 - 主从复制 概念配置主从模式info replicationslave-read-onlytcp-nodelay 命令slaveof 主从结构一主一从一主多从 主从复制流程数据同步命令全量同步部分同步实时同步 节点晋升 概念 Redis的最佳应用,还是要在分布式系统中。对于非分布式…

如何解决 Vim 中的 “E212: Can‘t open file for writing“ 错误:从编辑到权限管理(sudo)

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Squad战术小队开服教程

1、登录服务器(百度莱卡云游戏面板) 登录面板的信息在绿色的登陆面板按键下方,不是你的莱卡云账号 进入控制面板后会出现正在安装的界面,大约10分钟左右就能安装完成 2、设置 点击目录上的网络,你可以看到三个端口 然…

【Python】Twisted:让自定义网络应用开发变得简单

Twisted 是 Python 中一个成熟、功能强大的事件驱动网络编程框架。它支持多种协议,如 HTTP、FTP、SMTP 等,可以用于构建高性能的网络应用,包括网络服务器、客户端、代理服务器等。Twisted 的核心是基于事件驱动模型,能够有效处理大…

el-date-picker设置只有某些日期可选

示例图&#xff1a; <el-date-pickerv-model"topFormObj.upTime"type"date"value-format"timestamp"format"dd/MM/yyyy":picker-options"pickerOptions" /> 固定限制每周的周末周三不可选 data() {return {pickerOp…