elasticsearch版本介绍

介绍

elasticsearch 是一个高可扩展、开源的全文搜索、分析引擎。可以近实时的用来存储、搜索和分析大数据。关键词:

  • 近实时(Near Real Time)
  • 高可用、水平扩展
  • 分布式存储、搜索、分析引擎

官网:https://www.elastic.co/cn/

官网文档:https://www.elastic.co/guide/index.html

官网文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

 

1、elasticsearch诞生

elasticsearch产品的公司叫Elastic,于2018年10月5日在纽约证券交易所上市,市值50亿美金。

2004年Shay Banon基于Lucene开发了Compass;

2010年Shay Banon重写了Compass,取名ElasticSearch,支持分布式,可水平扩展,降低全文检索的学习曲线,可以被任何编程语言调用;

注:Doug Cutting是Hadoop、Nutch、Lucene的开发者,围绕这些开源软件,诞生了5家以上上市公司,还有数不清的创业公司。另外一个人doug Lea是对Java世界最具影响力的人之一。

Elastic的开源商业模式,可以归纳于以下四点:

  1. 选择一个稳定、强大但是使用门槛很高的开源核心
  2. 在开源核心上,以开发者为中心,打造一个容易上手使用的开源平台
  3. 围绕核心开源平台,通过合并、收购,形成完备的产品线
  4. 通过云服务,实现商业收入

国内创业公司,现在看来,最接近这个模式的是Kyligence。Kyligence由原ebay中国研发中心的韩卿、李栋等创建,现在是一家独立的创业公司,已经完成C轮融资。它核心平台是Apache顶级项目 Kylin:自 2014 年 10 月开源,并于 2015 年 11 月毕业成为 Apache 软件基金会 Top-Level 项目,Apache Kylin 已经成为领先的开源大数据 OLAP 引擎。

https://zhuanlan.zhihu.com/p/72974595

2、elastic stack

“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

Elasticsearch 的核心是搜索引擎,所以用户开始将其用于日志用例,并希望能够轻松地对日志进行采集和可视化。有鉴于此,我们引入了强大的采集管道 Logstash 和灵活的可视化工具 Kibana。后来,用户表示:“我只想对某个文件进行 tail 操作...”于是,在 2015 年,我们向 ELK Stack 中加入了一系列轻量型的单一功能数据采集器,并把它们叫做 Beats。

ELK 这个名称又要变了,的确如此。把它叫做 BELK?BLEK?ELKB?当时的确有过继续沿用首字母缩写的想法。然而,对于扩展速度如此之快的堆栈而言,一直采用首字母缩写的确不是长久之计。所以elastic stack就应运而生了,Elastic Stack 是 ELK Stack 的更新换代产品。

1)常见beat:

  • Auditbeat:Audit data
  • Filebeat :log files
  • Functionbeat:cloud data
  • Heartbeat:Availability monitoring
  • Journalbeat:Systemd journals
  • Metricbeat:metrics
  • Packetbeat:network traffic
  • Winlogbeat:windows event logs

2)logstash:

logstash并不是必须的,它提供了强大的数据解析、转换功能。

3、es版本

1)初始版本0.7

2010年5月14日发布,第一个可以查询到发版信息的版本。

2)1.X版本

2014年2月14日发布,重要特性:

  • Snapshot/Restore API 备份恢复API
  • 支持聚合分析Aggregations
  • CAT API 支持
  • 支持联盟查询
  • 断路器支持
  • Doc values 引入

3)2.X版本

2015年10月28日发布,重要特性:

  • 增加了 pipleline Aggregations
  • query/filter 查询合并,都合并到query中,根据不同的上下文执行不同的查询
  • 存储压缩可配置
  • Rivers 模块被移除
  • Multicast 组播发现被移除,成为一个插件,生产环境必须配置单播地址

4)5.X版本

2016年10月26日发布,重要特性:

  • Lucene 6.x 的支持,磁盘空间少一半;索引时间少一半;查询性能提升25%;支持IPV6。
  • Internal engine级别移除了用于避免同一文档并发更新的竞争锁,带来15%-20%的性能提升
  • Shrink API ,它可将分片数进行收缩成它的因数,如之前你是15个分片,你可以收缩成5个或者3个又或者1个,那么我们就可以想象成这样一种场景,在写入压力非常大的收集阶段,设置足够多的索引,充分利用shard的并行写能力,索引写完之后收缩成更少的shard,提高查询性能
  • 提供了第一个Java原生的REST客户端SDK
  • IngestNode,之前如果需要对数据进行加工,都是在索引之前进行处理,比如logstash可以对日志进行结构化和转换,现在直接在es就可以处理了
  • 提供了 Painless 脚本,代替Groovy脚本
  • 移除 site plugins ,就是说 head 、 bigdesk 都不能直接装 es 里面了,不过可以部署独立站点(反正都是静态文件)或开发 kibana 插件
  • 新增 Sliced Scroll类型,现在Scroll接口可以并发来进行数据遍历了。每个Scroll请求,可以分成多个Slice请求,可以理解为切片,各Slice独立并行,利用Scroll重建或者遍历要快很多倍。
  • 新增了Profile API
  • 新增了Rollover API
  • 新增Reindex
  • 基于HTTP协议的客户端对Elasticsearch的依赖解耦,没有jar包冲突,提供了集群节点自动发现、日志处理、节点请求失败自动进行请求轮询,充分发挥Elasticsearch的高可用能力
  • 引入新的字段类型 Text/Keyword 来替换 String
  • 限制索引请求大小,避免大量并发请求压垮 ES
  • 限制单个请求的 shards 数量,默认 1000 个

5)6.X版本

2017年8月31日发布,重要特性:

  • 稀疏性 Doc Values 的支持
  • Index sorting,即索引阶段的排序。
  • 顺序号的支持,每个 es 的操作都有一个顺序编号(类似增量设计)
  • 无缝滚动升级
  • Removal of types,在 6.0 里面,开始不支持一个 index 里面存在多个 type
  • Index-template inheritance,索引版本的继承,目前索引模板是所有匹配的都会合并,这样会造成索引模板有一些冲突问题, 6.0 将会只匹配一个,索引创建时也会进行验证
  • Load aware shard routing, 基于负载的请求路由,目前的搜索请求是全节点轮询,那么性能最慢的节点往往会造成整体的延迟增加,新的实现方式将基于队列的耗费时间自动调节队列长度,负载高的节点的队列长度将减少,让其他节点分摊更多的压力,搜索和索引都将基于这种机制。
  • 已经关闭的索引将也支持 replica 的自动处理,确保数据可靠。

6)7.X版本

2019年4月10日发布,重要特性:

  • 集群连接变化:TransportClient被废弃,es7的java代码只能使用restclient,建议采用 High-level-rest-client 的方式操作ES集群;
  • ES程序包默认打包jdk:以至于7.x版本的程序包大小突然边300MB+
  • 支持Lucene9.0
  • 正式废除单个索引下多Type的支持,在es7中使用默认的_doc作为type,官方说在8.x版本会彻底移除type
  • 7.1开始,Security功能免费使用
  • ECK-ElasticSearch Operator on Kubernetes
  • 引入了真正的内存断路器,它可以更精准地检测出无法处理的请求,并防止它们使单个节点不稳定
  • Zen2 是 Elasticsearch 的全新集群协调层,提高了可靠性、性能和用户体验,变得更快、更安全,并更易于使用
  • 新功能
    • New Cluster coordination
    • Feature - Complete High Level REST Client
    • Script Score Query
  • 性能优化
    • Weak-AND算法提高查询性能
    • 默认的Primary Shared数从5改为1,避免Over Sharding
    • 更快的前 k 个查询
    • 间隔查询(Intervals queries)

 

官方elasticsearch reference:https://www.elastic.co/guide/en/elasticsearch/reference/index.html

  • Elasticsearch Reference: master
  • Elasticsearch Reference: 7.x
  • Elasticsearch Reference: 7.10
  • Elasticsearch Reference: 7.9 (current)
  • Elasticsearch Reference: 7.8
  • Elasticsearch Reference: 7.7
  • Elasticsearch Reference: 7.6
  • Elasticsearch Reference: 7.5
  • Elasticsearch Reference: 7.4
  • Elasticsearch Reference: 7.3
  • Elasticsearch Reference: 7.2
  • Elasticsearch Reference: 7.1
  • Elasticsearch Reference: 7.0
  • Elasticsearch Reference: 6.8
  • Elasticsearch Reference: 6.7
  • Elasticsearch Reference: 6.6
  • Elasticsearch Reference: 6.5
  • Elasticsearch Reference: 6.4
  • Elasticsearch Reference: 6.3
  • Elasticsearch Reference: 6.2
  • Elasticsearch Reference: 6.1
  • Elasticsearch Reference: 6.0
  • Elasticsearch Reference: 5.6
  • Elasticsearch Reference: 5.5
  • Elasticsearch Reference: 5.4
  • Elasticsearch Reference: 5.3
  • Elasticsearch Reference: 5.2
  • Elasticsearch Reference: 5.1
  • Elasticsearch Reference: 5.0
  • Elasticsearch Reference: 2.4
  • Elasticsearch Reference: 2.3
  • Elasticsearch Reference: 2.2
  • Elasticsearch Reference: 2.1
  • Elasticsearch Reference: 2.0
  • Elasticsearch Reference: 1.7
  • Elasticsearch Reference: 1.6
  • Elasticsearch Reference: 1.5
  • Elasticsearch Reference: 1.4
  • Elasticsearch Reference: 1.3
  • Elasticsearch Reference: 0.90

 

你可能感兴趣的:(es)