ELK合集(一):Elasticsearch概述 持续更新

Elastic Inc - 上市公司

市场反应
  • 2010年 第一次发布 2012年成立公司
  • 成立6个月 160万次下载 首轮募到1000万美金风险投资
  • 当前市值超过50亿美金 开盘当天涨幅94%
发展
  • 2015.3月 收购Elastic Cloud 提供Cloud服务
  • 2015.3月 收购PacketBeat
  • 2016.9月 收购PreAlert - Machine Learning异常检测
  • 2017.6月 收购Opbeat 进军APM (实时性能监控的解决方案)
  • 2017.11月 收购SaaS厂商Swiftype 提供网站和App搜索

Elasticsearch - 开源软件

影响
  • ES软件下载量 超3.5亿次
  • 10万+社区成员
  • 7200+订阅用户 分布在100+国家
  • 用户 - github wiki百科 eBay livechat
  • 云服务合作 - Elastic Amazon 阿里巴巴 腾讯

Elasticsearch理念

“不要求你必须是一位数据科学家才能把它用好”



Elasticsearch 后边简称 ES

ES概念

开源 分布式 近实时(Near Real Time) 搜索/分析引擎

(说白了 就是一个查询/聚合很快的 面向文档型数据库)


ES作用

功能角度

查询

  • 搜索
    • 海量数据 的 分布式存储及管理 – 效果 : 服务与数据的高可用 水平扩展
    • 近实时搜索 性能卓越 – 效果 : 结构化 全文 地理位置 自动完成
  • 聚合
    • 海量数据的近实时分析 – 效果 : 数据快速统计分析
架构角度

放在哪

  • 方式一 仅用于查询
    ELK合集(一):Elasticsearch概述 持续更新_第1张图片
  • 方式二 用于存储并查询 – 直接替代数据库
    • 使用场景
      • 事务性要求不能高
      • 数据更新不能频繁

ES技术地位

对比同类技术排名第一
  • Solr - Apache开源项目
  • Splunk - 商业上市公司的日志分析软件

ES起源

Lucene
创始人 概念 历史 优点 缺点
Doug Cutting - Hadoop之父 基于Java开发的搜索引擎类库 1999年创建 2005年成为Apache顶级开源项目 高性能 易扩展 只能基于Java语言开发;类库的接口学习曲线陡峭;原生并不支持水平扩展
ES诞生
创始人 源码语言 发展
Shay Banon Java 2004年 基于lucene开发了Compass ; 2010年 重写并取名Elasticsearch(支持分布式 且 增加RestfulAPI-降低学习曲线 任何语言都可调用)

ES版本新特性

0.4版本
  • 发布时间 : 2010.2月 第一次发布
1.0版本
  • 发布时间 : 2014.1月
2.0版本
  • 发布时间 : 2015.10月
5.0版本
  • 发布时间 : 2016.10月
  • 新特性 :
    • 性能提升
      • 默认打分机制 从TF-IDF 改为 BM25
    • 新功能
      • 支持 Ingest节点
      • Painless Scripting / Completion suggested支持
      • 原生的JavaRest客户端
    • 性能优化
      • 内部引擎移除了避免统一文档并发更新的竞争锁 带来15%-20%的性能提升
      • Instant aggregation 支持分片上聚合的缓存
      • 新增了ProfileAPI
    • 基于Lucene6.0
6.0版本
  • 发布时间 : 2017.10月
  • 新特性
    • 新功能
      • 跨集群复制CCR
      • 索引生命周期管理
      • SQL支持
    • 更好的升级和数据迁移
      • 简化迁移 - 主要版本之间的迁移
      • 加快恢复数据 - 全新的基于操作的数据复制框架
    • 性能优化
      • 有效存储稀疏字段的新方法 - 降低存储成本
      • 索引时进行排序 - 加快排序的查询性能
    • 基于Lucene7.0
7.0版本
  • 发布时间 : 2019.4月
  • 新特性
    • 重大改进
      • 正式废除单个索引下多个Type的支持
      • 7.1开始 Security功能免费
    • 部署兼容
      • ECK - Elasticsearch Operator on Kubernetes(支持部署到K8S)
    • 新功能
      • New Cluster coordination
      • Feature - Complete High Level REST Client
      • Script Score Query
    • 性能优化
      • 默认的Primary Shard数从5改为1 - 避免Over Sharding
      • 更快的Top K
    • 基于Lucene8.0

ES的分布式架构

分布式架构图

水平扩展

ELK合集(一):Elasticsearch概述 持续更新_第2张图片

分布式作用
  • 高可用 : 支持水平扩展 1个节点到数百节点
    • 服务高可用 – 允许有节点停止服务
    • 数据高可用 – 部分节点丢失 不丢数据
  • 资源最大化利用 : 支持不同节点类型
    • 支持Hot&Warm架构 (说白了就是配置高的主机存放常用数据 配置低的主机存放不咋用的数据)
    • 节点可作为纯数据节点 纯调度节点 纯主节点等

ES的接入方式

方式一 RestfulAPI

用开发语言调用http请求ES

  • Java
  • .Net
  • Python
  • Ruby
  • PHP
  • Groovy
  • Perl
方式二 JDBC&ODBC


参考
阮一名资料
官方文档
百度

你可能感兴趣的:(ELK)