`
m635674608
  • 浏览: 4936422 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ElasticSearch的工作机制

 
阅读更多

ElasticSearch,和Solr一样,是底层基于Apache Lucene,且具备高可靠性的企业级搜索引擎。

ElasticSearch中的一些概念其实和关系型数据库都有对应关系,比如数据库在ES中被称为索引,表在ES中被称作Type。

具体对应关系见下表。

ElasticSearch的工作机制

ElasticSearch中的Replica是副本的意思,创建副本的好处有两个,1,可以分流部分查询请求,2,如果集群中的某个分片丢失了,就可以使用这个副本将数据全部找回来,因为这个原因,副本分片和源分片不会放在同一节点上。 ES中每一个索引都可以被分成多个分片,但不一定每个分片都有副本,但是一旦创建了副本,就会有主分片的说法(作为复制源的分片),分片和副本的数量可以在索引创建的时候指定。下图是副本和分片的示意图,分片和它的副本不会在同一个节点上。

ElasticSearch的工作机制

在索引创建之后,你可以在任何时候动态地改变副本的数量,但是你事后不能改变分片的数量。  默认情况下,Elasticsearch中的每个索引被分片5个主分片和1套副本,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个副本,这样的话每个索引总共就有10个分片。

当ES的一个节点启动后,它会通过广播方式找到集群中的其他节点,并且建立连接。

在集群中,其中的某个节点会被选取作为主节点,这个主节点负责管理集群状态。这个主节点对于用户来说是透明的,用户不需要知道哪个节点是主节点。任何操作都可以发送到任何节点。必要的时候,任何节点可以并行的发送子查询到其他节点,并且将得到的响应合并后发送给用户,这些操作都不需要访问主节点。

主节点读取集群信息,在读取过程中,它会检测分片的情况,哪些分片是主分片,并且是可用的,在这一步之后,所有的分片已经准备好了,而副本还没有。下一步的操作就是找到那些已经被复制过的分片,将他们作为副本。如果一切顺利,那么ES启动成功了,所有的分片和副本都已经准备好了。

在ES工作的时候,主节点会监控所有的节点是否正常,默认配置为:节点每隔1s主节点会发送1次心跳,超时时间为30s,测试次数为3次,超过3次,则认为该节点同主节点已经脱离了。如果某一个节点出现问题,ES认为这个节点损坏,该节点会从集群中删除,并且ES会重新平衡整个集群。

ES通过Query DSL (基于json的查询语言)来查询数据,在ES内部,每次查询分成2个步骤,分散和聚合,分散是指查询所有相关的分片,聚合是指把所有分片上的查询结果合并,排序,处理然后在返回给客户端。

ElasticSearch 有4中方式来构建数据库,最简单的方法是使用index API,将一个Document发送到特定的index,一般通过curl tools实现。第二第三种方法是通过bulk API和UDP bulk API。两者的区别仅在于连接方式。第四种方式是通过一个插件-river。river运行在ElasticSearch上,并且可以从外部数据库导入数据到ES中。需要注意的是,数据构建仅在分片上进行,而不能在副本上进行。

Vagrant 和 Docker:如何在 OS X 上安装和设置 Postgres, Elasticsearch 和 Redishttp://www.linuxidc.com/Linux/2014-09/106898.htm

分布式搜索ElasticSearch单机与服务器环境搭建http://www.linuxidc.com/Linux/2012-05/60787.htm

ElasticSearch 的详细介绍 :请点这里

ElasticSearch 的下载地址 :请点这里

本文永久更新链接地址: http://www.linuxidc.com/Linux/2014-11/109922.htm

 

http://www.chepoo.com/elasticsearcharticles

分享到:
评论

相关推荐

    7.17.1系列Elasticsearch的elasticsearch-analysis-ik分词器

    词库扩展性:elasticsearch-analysis-ik 采用了可扩展的词库机制。用户可以根据自己的需求,定制和扩展词库,添加新的词汇,从而实现更好的分词效果。 多种分词模式:elasticsearch-analysis-ik 支持多种分词模式,...

    Elasticsearch总结.doc

    Elasticsearch 简介 简单描述Elasticsearch Elasticsearch的特性 分布式、全文检索、近实时搜索和分析、高可用、模式自由、restful 讲述Elasticsearch的架构和Elasticsearch 的核心 概念 二、索引数据 单词 文档...

    ElasticSearch5.2全网最全技术视频

    (2)包含市面上几乎没有的所有Elasticsearch高级知识点:包含地理位置搜索与聚合分析,term vector,suggester search,搜索模板定制,query执行剖析,数十种最全面的聚合分析,span query,shard分配定制,es插件...

    Elasticsearch.Net Demo

    它非常抽象,因此所有的Elasticsearch API被表示为方法,没有太多关于你想如何构建json/request/response对象的东东,并且它还内置了可配置、可重写的集群故障转移机制。  Elasticsearch.Net有非常大的弹性,如果...

    elasticsearch-6.7.0

    ElasticSearch(ES)2019最新版下载。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,...

    elasticsearch索引介绍.pptx

    对elasticsearch的索引做了一个简单的介绍,可以作为项目培训的课件使用

    Elasticsearch学习资料整理

    整理的elasticsearch学习资料大全,包含elasticsearch-2.x和5.x,不同版本下安全机制,如何与springboot集成,elasticsearch的jdbc插件、安装出现错误分析等等

    MySQL-ElasticSearch数据同步工具py-mysql-elasticsearch-sync.zip

    一个将MySQL的数据同步到ElasticSearch的工具。首次初始导入基于mysqldump,增量同步基于MySQL的binlog机制,采用Python语言开发。 标签:数据同步

    项目实战——Spark将Hive表的数据写入ElasticSearch(Java版本)

    项目实战:Java一站式解决Hive内用Spark取数,新建ES索引,灌入数据,并且采用ES别名机制,实现ES数据更新的无缝更新,底层采用Spark计算框架,数据较快。

    Elasticsearch-HBase-replication同步

    用于hbase同步数据到es(replication机制)

    最详细的Elasticsearch学习资料(源码)

    Elasticsearch 是一个基于 Lucene 的开源搜索引擎,它提供了一个分布式、多租户的全文搜索和分析引擎。Elasticsearch 是用 Java 语言编写的,并且提供了 RESTful...易于扩展:Elasticsearch 提供了丰富的插件机制和扩展

    elasticsearch-vector-scoring:对与ES具有纯点积余弦相似度的文档进行评分

    用于Elasticsearch的矢量计分插件注意:此插件的大多数功能现已在ES中本机支持: : 另请参阅 。 该插件不再维护使用此插件,您可以使用点积或余弦相似度,根据任意原始向量对文档进行评分。发行版Master分支的目标是...

    elasticsearch-7.7.0-linux-x86_64.tar.gz

    Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Elasticsearch是一个...

    Elasticsearch-HBase-River同步

    用于hbase同步数据到es(river机制)

    grafana+Prometheus监控Elasticsearch8.9集群,以及监控ES服务器,里面的指标很全

    grafana+Prometheus监控Elasticsearch8.9集群,以及监控ES服务器,里面的指标很全,特别适用于关闭了xpack.security的部署环境,ES默认的监控机制需要开启xpack.security,这个监控方案可以不关注xpack.security是否...

    ES-核心知识篇(上半季)课件-1.rar

    1、基于Elasticsearch最新版本,5.2版本,进行课程的讲解,让大家学好技术后,...同时还细致到包含很多独家的知识点,比如说Elasticsearch如何突破扩容瓶颈,search timeout机制,如何定位不合法的搜索,等等。

    elasticsearch-5.6.15安装与使用教程

    ElasticSearch是一个开源分布式搜索服务器。特点:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,节点数据均等,自动搜索负载等。它提供了一个分布式多用户的全文搜索引擎,...

    docker 运行 elasticsearch + kibana + head 集群

    巨坑提醒:ES和kibana的版本尽可能的保证一致,否则要去修改很多配置信息,而且不一定能安装成功,现象:ES安装成功了但是kibana链接到ES报错:Elasticsearch plugin is red ElasticSearch安装 Elasticsearch 是个...

    Elasticsearch-HBase-sep机制

    用于hbase同步数据到es(sep机制),基于hbase-indexer组件

Global site tag (gtag.js) - Google Analytics