大数据核心企业级海量数据的搜索引擎elasticsearch架构解析

最近有很多粉丝发私信想让我写一下关于数据搜索方面的文章,前面关于数据的铺垫基本上都讲过了,从hdfs到mr到hbase、zk、hive在之后的文章我会对数据的采集和处理的两个组件sqoop和flume进行实例的讲解,本文只对ES的架构和基本的使用进行讲解什么是elasticsearch?

简单的说es就是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。他是基于Lucene进行编写的:

而Lucene其实可以说是一个开源的全文检索引擎工具包(类似于Java api),而Elasticsearch底层是基于这些包,对其进行了扩展,提供了比Lucene更为丰富的查询语言,可以非常方便的通过Elasticsearch的HTTP接口与底层Lucene交互那么什么是全文检索呢?

全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文搜索搜索引擎数据库中的数据。

简单来看一下标准的定义

Lucene 定义

lucene是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。

ElasticSearch 定义

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

关于他们二者之间的关系前面已经说过了,就是一个ES是基于lucene进行开发的。

提到海量数据的搜索有一个solr肯定有很多人听说过了

Solr 定义:

Solr是Apache 下的一个开源项目,使用Java基于Lucene开发的全文检索服务是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

ElasticSearch vs Solr 优缺点

ElasticSearch vs Solr 检索速度

当单纯的对已有数据进行搜索时,Solr更快。

当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。

随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。

大型互联网公司,实际生产环境测试,将搜索引擎从Solr转到Elasticsearch以后的平均查询速度有了50倍的提升。

ElasticSearch vs 关系型数据库

可以看到ES是通过一个个的索引库去进行海量数据的搜索的

ElasticSearch 架构

ElasticSearch 工作原理

ElasticSearch 在Hadoop生态圈的位置

在hadoop生态圈中我们把设计为三层,分别为source、data system 和app,那么ES就是对data system通过建立各种索引及其他进行连接和搜索的使用者

在一个web数据的采集场景中,多台web服务器,产生的数据包含日志和其他数据通过flume进行采集后,根据不同的场景通过不同的sink分别传输到hadoop的存储(hdfs)、和

ES的存储中,hadoop的存储和ES之间可以通过mr、hbase等进行数据的相互调用和传输

ElasticSearch 应用场景

1.站内搜索:主要和 Solr 竞争,属于后起之秀

2.NoSQL Json文档数据库:主要抢占 Mongo 的市场,它在读写性能上优于 Mongo ,同时也支持地理位置查询,还方便地理位置和文本混合查询。

3.监控:统计、日志类时间序的数据存储和分析、可视化,这方面是引领者

4.国外:Wikipedia(维基百科)使用ES提供全文搜索并高亮关键字、StackOverflow(IT问答网站)结合全文搜索与地理位置查询、Github使用Elasticsearch检索1300亿行的代码

5.国内:百度(在云分析、网盟、预测、文库、钱包、风控等业务上都应用了ES,单集群每天导入30TB+数据,总共每天60TB+)、新浪 、阿里巴巴、腾讯等公司均有对ES的使用

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();