目录
1、系统介绍与基本特点
2、系统重要概念
3、相关竞品及生态圈说明
详情
1、系统介绍与基本特点
它是什么
- 简称es
- 基于Lucene的搜索引擎服务器
- Lucene是什么
- 开源的高性能、可伸缩的全文检索引擎工具包
- 但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构
- 提供完整的索引引擎和查询引擎,及部分分析引擎
- Lucene是什么
- 当前非常流行的、免费的Java信息检索(Information Retrieve)库
- 索引结构介绍
- 正排索引:文档到词
- 倒排索引:词到文档
- 基于Lucene的搜索引擎服务器
- 提供了完整的分布式、多用户能力的全文检索引擎
- java开发,提供完整的Http Restful接口
一个nosql的存储引擎,最新版本已提供sql语句
它的特点
- 开源、分布式、高可用(HA)、高性能、可伸缩的企业级搜索引擎,达到实时搜索、稳定、可靠、快速、安装使用方便
- “零配置”、完全免费
2、系统重要概念
它的重要概念
- Cluster(集群)
- es是天然支持分布式集群模式的
- 集群中有多个节点,一个主节点,多个从节点,还可以有多个主节点,但同一时间只有一个被激活。
- 主节点是通过选举产生的,其主从节点的角色划分是相对于集群内部来说的。
- 其集群强调去中心化的,即对于集群外部来说是统一为一个整体的,与任意一个节点通信和与集群通信是完全等价的,即在外部看来是没有中心的。
与关系型数据库类比
- RDB(Relational DB) -> Databases -> Tables -> Rows -> Columns
- ES(Elasticsearch) -> Indices(库) -> Types(表) -> Documents(文档记录) -> Fields(字段)
Index(索引库)
- 类比于mysql中的数据库,内部由一系列的type(表)组成
- ES6.x及以后,官方已禁止一个索引对应多个type的情况,改成必须1:1的形式,消除很多使用误区和易出的BUG。
Type(索引类型,即表)
- 类比于mysql中的表,从属于Index,是由一系列具有相同特征数据组成
- 内部由一系列的Document(文档)组成
- ES6.x及以后,官方已强调逐步剔除该概念,预计7.0及以后将没有该概念
Document(文档)
- document类比于mysql中的一条记录,均为json格式
- es面向文档去存储、索引、搜索、排序、过滤等操作
Shards(分片)
- 在数据量很大的情况下,进行水平扩展,提高索引和搜索性能。
- 类比于hdfs中的block数据分块的思路
- 分片数量必须要索引库创建前指定,创建完成后不可更改
Replicas(复本)
- 对相应的分片数据进行备份,防止分片数据丢失,同时提高搜索性能。
- 类比于hdfs中的block数据复本的思路,默认是1,即一共存储2份。
- 系统内部自动进行负载均衡
recovery(数据恢复机制)
- 集群内有节点加入或退出时,会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。
river(数据同步到es的插件)
- 将非es的数据源同步到es的插件和解决方法
- 目前各个非es的数据源同步插件均已有,包括mysql,couchDB,RabbitMQ等
gateway(快照)
- 索引快照的存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。当这个es集群关闭再重新启动时就会从gateway中读取索引数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。
discovery.zen(自动发现节点机制)
- es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。
Transport(数据交互方式)
- 代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。
- Cluster(集群)
- 简称es
3、相关竞品及生态圈说明
它的同类竞品
- apache solr(也很火,es略占上风)
- 也是基于Lucene搜索引擎架构的企业级搜索应用服务器
- apache出品的顶级java开源项目,均支持全套的restful api接口
- 用户体验、易用性、性能表现上略弱于es
es与同类竞品solr的比较说明
- 安装布署、运维、易用性等方面基本对等
- solr的社区背靠apache,比es略强大一些
- 当用于实时索引与搜索时,solr的性能明显弱于es,主要是由于solr在索引构建时产生io阻塞导致的。
该场景下,es也只能做近实时,索引完成到能搜索出来,约有1s的延迟。 - 当数据量超过一定量级别,solr的性能下降明显,es趋于稳定。
- 综上所述,做历史数据的实时搜索solr占优,做实时数据的实时搜索则es占优。
es stack(生态圈)
logstash
- 具备实时数据传输能力的管道,着重日志相关处理
- 负责将数据信息从管道的输入端传输到管道的输出端
- 支持灵活根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景
kibana
- 开源的分析和可视化平台,数据主要由es提供
- 基于es的搜索与分析能力,拿到用于上层分析和可视化需要的结果
- 开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。
beats
- 专门用于发送数据的平台,可以将数据无缝传输给logstash或是es
- 轻量级代理机制安装,类似于hadoop集群安装时候的ambari或cdh manager
- 可将数以百千计算机中的数据发送到logstash或是es中。
es-hadoop
- 一个深度集成Hadoop和es的项目,是es官方维护的一个子项目
- 可以达到hadoop与es之间的输入与输出
- 重点是充分利用hadoop的并行计算优势,为hdfs数据提供实时搜索能力。
es-sql
- 用sql来操作es,来代替之前需要写各种复杂的json查询才可解决的问题
es-sql目前有两个版本
- 第一,是多年前即开始的国内主推开源的nlpchina/es-sql插件
- 第二,是自2018.06官方es6.3.0发布后正式支持的es-sql功能
- 市面上目前以第一种为绝对主力,第二种的es-sql市场情况视发展而看。
- ELK或称ELKB组合套件(elastic stack)
- 安装布署、运维、易用性等方面基本对等
天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以”快乐工作,认真生活,打造高端职业技能教育的一面旗帜”为愿景,胸怀”让天下没有难找的工作”使命,
坚持”客户第一、诚信、激情、拥抱变化”的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。
更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://bbs.myhope365.com/forum.php?mod=viewthread&tid=1422&extra=page%3D1
欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
爬虫、nlp技术qq群320349384
天亮教育官方群318971238,
hadoop & spark & hive技术群297585251,
官网:http://myhope365.com
官方天亮论坛:http://bbs.myhope365.com/