大数据(二)Elasticsearch 分布式搜索引擎(存索引、索引搜索)
一、Elasticsearch 存索引, Hbase 里存原数据
例如:一条告警上报过来,会同时存Hbase, ES里,Hbase存原数据,ES里只存索引(包含告警ID, 告警级别,告警状态,告警时间,告警名称),
所以可以根据上述查询条件,输入关键字,发送请求到ES查询,根据查询出的告警ID, 再拿ID 去Hbase 查出该告警详细信息返回给前端。
二、
Mysql | ES |
表 | index |
(type) | |
一条记录 | document |
ES里面的index 就相当于一张表,document就相当于一条记录。目前ES里就几张表alert, log, monitor-parameter ,就这三张表,按照需求来的。支持告警、日志、监控参数查询。
三、参考文档,百度百科:https://baike.baidu.com/item/elasticsearch/3411206?fr=aladdin
ES基本入门介绍:https://blog.csdn.net/makang110/article/details/80596017
ES安装、基本操作、增删查改:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
1PB=1024T=1048576G
1T=1024G
zcy他们的项目数据量是一天几百G, 有些电商数据更大,一天几个T都有可能,目前他们的服务器集群是几十一百多台高性能服务器。
ES和Lucene的关系:
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
1)Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
2)Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
1.3 ES主要解决问题:
1)检索相关数据;
2)返回统计结果;
3)速度要快。