Elastic学习之旅(1)初识ElasticSearch

大家好,我是Edison。

最近需要用到ElasticSearch,于是想要系统学习了解下,于是这就开始啦。

什么是ElasticSearch?

ElasticSearch是一款开源的分布式搜索分析引擎,它可以提供近实时(Near Real Time)的分布式存储/搜索/分析引擎服务

起源:Lucene

ElasticSearch起源于Lucene,Lucene是一个基于Java开发的搜索引擎类库,创建于1999年,于2005年成为Apache顶级开源项目。Lucene具有高性能和易扩展的优点,但也有一定的局限性:只能基于Java开发,学习曲线陡峭,原生不支持水平扩展等

重生:ElasticSearch

2004年Shay Banon基于Lucene开发了Compass,2010年Shay Banon重写了Compass,并改名为ElasticSearch,它完美解决了Lucene的局限!

ElasticSearch支持分布式,可水平扩展,且降低了全文检索的学习曲线,可以被任何编程语言调用

ElasticSearch的主要功能

ElasticSearch主要提供了三大核心功能:

(1)海量数据的分布式存储以及集群管理

服务和数据的高可用,水平扩展

(2)近实时搜索,性能卓越

结构化 / 全文 / 地理位置 / 自动完成

(3)海量数据的近实时分析

聚合功能

支持多种方式集成接入

ElasticSearch提供了多种方式进行接入:

(1)多种编程语言类库,如Java/.NET/Python/PHP等;

(2)RESTful API v.s Transport API

(3)JDBC & ODBC

ElasticStack 生态圈

ElasticStack目前有如下图所示的成熟生态圈:

  • Logstash:数据处理管道,支持从不同来源采集数据并转换数据,最后将数据发送到不同的存储库中。
  • Beats:轻量级的数据采集器,如Filebeat、Packetbeat、Winlogbeat、Metricbeat、Heartbeat等。
  • Kibana:可视化分析利器,帮助我们解开对数据的任何疑问,强大的数据展示能力。
  • X-Pack:商业化套件,也就是付费用户专享了,有OSS、Basic、黄金版 和 白金版几个License类别。

ELK 应用场景

我们常常所听到的ELK其实是ElasticSearch + Logstach + Kibana的组合缩写,ELK被广泛的应用在下面这几个应用场景中:

(1)网站搜索 / 垂直搜索 / 代码搜索

(2)日志管理与分析 / 安全指标监控 / 应用性能监控

其中,日志管理与分析 可能是大家最熟悉的应用场景,因为日志对应用系统来说太重要了,它就像是医生给病人看病,日志就是病人对自己的陈述。

小结

本篇,我们了解了ElasticSearch是什么,它有什么样的特点,提供了什么主要的功能 以及 ELK的主要应用场景。至今,ElasticSearch已有超过2.5亿的下载量,不仅有良好的开发者社区,更有大量的互联网公司使用案例。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。