今天的文章给大家介绍下Elasticsearch这一目前在“搜索”和“分析”领域使用十分广泛的技术组件。并演示如何快速构建一个Elasticsearch集群。
Elasticsearch概述
Elasticsearch是一款非常强大的开源“搜索”及“分析”引擎。除了搜索,结合Kibana、Logstash、Beats,以及Elastic Stack的技术生态,Elasticsearch还被广泛运用在大数据实时分析领域——包括日志分析(ELK)、指标监控、信息安全等领域。
Elasticsearch起源于开源搜索引擎类库Lucene,Elasticsearch的创始人Shay Banon于2004年基于Lucene开发了“Compass”,并在2010年重写“Compass”项目之后,将其正式命名为“Elasticsearch”。
目前在搜索引擎分类排名中Elasticsearch名列第一,除此之外,同类的产品还有Solor(Apache开源项目)和Splunk(商业项目),它们三者提供的功能非常相似。但是在程序员开源社区中Elasticsearch的活跃度最高。
Elasticsearch的功能特性
Elasticsearchs是一种典型的分布式系统,支持水平扩展。当数据规模变大的时候,Elasticsearch的集群节点可以从单个扩展到数百个。
Elasticsearch集群还支持设置不同的节点类型。例如针对日志类的应用可以支持Hot&Warm架构——冷热架构部署。Elasticsearch的分布式架构如下图所示:
除此之外,Elasticsearch还支持多种方式集成接入。例如,可以被多种语言方便的集成(Java、.Net、Python、PHP..);灵活的RESTful API;最新版本甚至还支持JDBC&ODBC方式的接入。
Elastic Stack家族成员