简介
Elasticsearch是一个分布式的、可伸缩的、实时搜索和分析引擎,简称ES。Elasticsearch、Logstash、Kibana构成ELK stack,从数据采集到数据分析处理以及最后的数据可视化,为很多数据场景提供了稳定的解决方案。
图1:es是什么?
现今有很多公司采用elasticseach,并且ES在很多方便的表现优于solar。
- Github:“GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码”。
- SoundCloud:“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”。
- 百 度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展 示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群 最大100台机器,200个ES节点,每天导入30TB+数据。
- sina:新浪的广告业务日志,标签数据,以及集群metrics数据存储在es中,提供检索及分析服务
面向搜索(for full text search) | 面向分析 (for analytics) |
Wikipedia | Goldman Sachs |
Github | Ubnt |
Quora | Foursquare (LBS) |
Baidu | Netflix |
Sina | Baidu |
概念
Cluster和Node
ES可以以单点或者集群方式运行,以一个整体对外提供search服务的所有节点组成cluster,组成这个cluster的各个节点叫做node。
Index
这是ES存储数据的地方,类似于关系数据库的database。
Shards
索引分片,这是ES提供分布式搜索的基础,其含义为将一个完整的index分成若干部分存储在相同或不同的节点上,这些组成index的部分就叫做shard。
Replicas
索引副本,ES可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高ES的查询效率,ES会自动对搜索请求进行负载均衡。
Recovery
代表数据恢复或叫数据重新分布,ES在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。
Gateway
ES索引快照的存储方式,ES默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘。gateway对索引快照进行存储,当这个ES集群关闭再重新启动时就会从gateway中读取索引备份数据。
Discovery.zen
代表ES的自动发现节点机制,ES是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。
Transport
代表ES内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)