分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介

1. Elasticsearch简介

Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。

Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。

Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。

官网:https://www.elastic.co/downloads/elasticsearch

中文社区:https://es.xiaoleilu.com/

XXL组织也有相关的产品:ElastiJob—XXL-JOB

2. Elasticsearch优势

「横向可扩展性」:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。

「分片机制提供更好的分布性」:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。

「高可用」:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。

3. Elasticsearch应用场景

大型分布式日志分析系统ELKElasticsearch(存储日志)+ Logstash(收集日志) + Kibana(展示数据)

应用于:大型电商商品搜索系统、网站站内搜索、网盘搜索引擎等。

例如:

  • Elasticsearch使用公司
  • 维基百科
  • The Guardian(国外新闻网站)
  • Stack Overflow(国外的程序异常讨论论坛)
  • GitHub(开源代码管理)
  • 电商网站
  • 日志数据分析
  • BI系统
  • 站内搜索
  • 。。。。。

4. Elasticsearch存储结构

Elasticsearch是文件存储,Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:

{
    "name" :     "ylw",
    "sex" :      0,
    "age" :      25
}

关系数据库 ⇒ 数据库 (会员数据库)⇒ 表 (用户表) ⇒ 行 ⇒ 列(Columns)

Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)

5. Kibana可视化界面

Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。

  • 可以用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。
  • 可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。

Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。

6. Elasticsearch版本控制

1.为什么要进行版本控制CAS无锁?

答:为了保证数据再多线程操作下的准确性

2.悲观锁和乐观锁

悲观锁:假设会发生并发冲突,屏蔽一切可能违反数据准确性的操作

乐观锁:假设不会发生并发冲突,只在提交操作是检查是否违反数据完整性。

3.内部版本控制和外部版本控制

  • 内部版本控制:_version自增长,修改数据后,_version会自动的加1
  • 外部版本控制:为了保持_version与外部版本控制的数值一致,使用version_type=external检查数据当前的version值是否小于请求中的version值。
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
打赏
0
0
0
0
243
分享
相关文章
MySQL原理简介—7.redo日志的底层原理
本文介绍了MySQL中redo日志和undo日志的主要内容: 1. redo日志的意义:确保事务提交后数据不丢失,通过记录修改操作并在系统宕机后重做日志恢复数据。 2. redo日志文件构成:记录表空间号、数据页号、偏移量及修改内容。 3. redo日志写入机制:redo日志先写入Redo Log Buffer,再批量刷入磁盘文件,减少随机写以提高性能。 4. Redo Log Buffer解析:描述Redo Log Buffer的内存结构及刷盘时机,如事务提交、Buffer过半或后台线程定时刷新。 5. undo日志原理:用于事务回滚,记录插入、删除和更新前的数据状态,确保事务可完整回滚。
164 22
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
海量日志接入 Elasticsearch Serverless 应用降本70%以上
本文将探讨在日志场景下,使用阿里云Elasticsearch Serverless相较于基于ECS自建Elasticsearch集群的成本与性能优势,展示如何通过Serverless架构实现高达 70%以上的成本节约。
226 0
如何为微服务实现分布式日志记录
如何为微服务实现分布式日志记录
197 1
|
5月前
|
Elasticsearch分布式架构
【11月更文挑战第2天】
77 1
开源日志分析Elasticsearch
【10月更文挑战第22天】
90 5
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等