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

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

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

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(已更完)

Spark(已更完)

Flink(已更完)

ClickHouse(已更完)

Kudu(已更完)

Druid(已更完)

Kylin(已更完)

Elasticsearch(正在更新…)

章节内容

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


Apache Kylin 流式构建

完整的过程记录

355bee96cfea1fb740014020d0c42dc7_84051da2d715486bb33c2415aab11384.png ELK

集中式日志系统

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


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

一个完整的集中式日志系统,是离不开以下几个主要特点的:


收集-能够采集多种来源的日志数据

传输-能够稳定的把日志数据传输到中央系统

存储-如何存储日志数据

分析-可以支持UI分析

警告-能够提供错误报告,监控机制

7ab224f6e4be3e0a37cd611509b42576_c8d30820180643679de3836070259a32.png 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的索引中查找,交互数据,生成各种维度的表图。

7ac26e411218b02b06c301b0b7c90255_4a978d094dc543e8ab426f1178afadc2.png 参考文档


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


相关文章
|
27天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
4天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
390 16
|
7天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
19天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
7天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
350 2
|
22天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
24天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2597 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
6天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
260 2
|
4天前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
106 65
|
23天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1581 17
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码