ElasticSearch集群与应用.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ElasticSearch简介 假如我们建了一个web站点或者是一个应用程序,你就可能会需要添加搜索功能(因为这太有必要了),而事实上让搜索跑起来是有难度的,我们不仅想要搜索的速度快,而且还要安装方便(最好是无痛安装),另外模式定义要非常自由(schema free),可以通过HTTP以JSON格式的数据来进行索引,服务器必须是一直可用的(HA高可用,这个不能丢),从一台机器能够扩展到成千上万台,然后搜索必须是实时的(real-time),使用起来一定要简单、支持多租户,我们需要一整套的解决方案。elasticsearch?的目标是解决上面的所有问题以及更多。它是开源的(Apache2协议),分布式的,RESTful的,构建在Apache Lucene之上的的搜索引擎. ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。 ElasticSearch集群及应用 1、elasticsearch集群elasticsearch集群主要修改config下面的elasticsearch.ymlelasticsearch可以指定一个集群名,集群里可以配置一个Master多个node,可以手动配置选举产生Master。下面的配置,台机器是Master, : es_mongodb : es_mongodb0 node.master: true node.data: true : es_mongodb : es_mongodb1 node.master: true node.data: true : es_mongodb : es_mongodb2 node.master: true node.data: true elasticsearch运行很简单,linux下直接?bin/elasticsearch就运行了,windows运行bin/elasticsearch.bat。如果是在局域网中运行elasticsearch集群也是很简单的,只要设置一致,并且机器在同一网段下,启动的es会自动发现对方,组成集群。 2、elasticsearch集群 如下图表示一个es集群有三shard和1个replica,一个完整的索引的存储分成三个分片分别存储在三个shard上,然后每个shard有产生1个副本。 recovery? 代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。? river? 代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Hadoop的,MongoDB的。? gateway? 代表es索引的持久化存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。当这个es集群关闭再重新启动时就会从gateway中读取索引数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。? discovery.zen? 代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。? Transport? 代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。 下图是elasticsearch的整体架构图: 3、elasticsearch应用(Java) 介绍几个Java应用中的重要概念 index:索引库名称,相当于关系型数据库中的表名,一个 elasticsearch集群中可以有多个索引库。 type:索引库中索引数据类型,为索引类型,是用来区分同索引库下不同类型的数据的,一个索引库下可以有多个索引类型。 id:索引库中索引数据主键,唯一。 1、与集群连接 可以通过两种方式来连接到 elasticsearch(简称es)集群。 第一种是通过在程序中创建一个嵌入elasticsearch节点(Node),使之成为elasticsearch集群的一部分,然后通过这个节点来与elasticsearch集群通信。 Node 方式: 创建嵌入节点的方式如下: // 启动节点 Node node = new NodeBuilder().node(

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档