当前位置:文档之家› ElasticSearch

ElasticSearch

ElasticSearch
ElasticSearch

ElasticSearch

ES评估资料

通过开发机登陆hadoop03:9200/_plugin/sql 可以访问

ES调研结果

以下是我们对于ES的调研结果(调研主要是锦明完成的,我主要把各项数据总结一下)

我们已经在开发机上部署了ES以及ES SQL,ES Hadoop插件,大家如果要访问ES SQL的话可以通过开发机登陆 hadoop03:9200/_plugin/sql

1. 1. 使用方式:

目前在我们的环境中ES大致有下面三种使用方式可供先择:

a) 调用Estate的restfule API/Java API用于做数据的增删改查。经测试这种方法效率最高

b) 布署ES-SQL插件,提供SQL的方式插入,删除,修改以及查询;

c) 布置es-hadoop插件,将es与hive集成; 通过hive SQL进行数据的批量插入和查询

1. 2. 性能评估

测试对象:user_basic_es2,记录数目74228947,字段数70-80

使用方式

操作

API ES-SQL HIVE

批量插入7500万40mins(数据要提前准备好) 不支持90mins

批量更新7500万40mins(数据提前准备好)不支持现有配置Hive语法不支持更新

删除数据1s 1s 现有配置Hive方法不支持更新

单表查询-where过滤 1s 1s 60mins

单表查询-Group By 1s 1s 60mins

Hive之所以查询慢是因为hive并没有用到ES的索引,查询的时候只是把数据都读了出来在map端进行过滤以及之后的操作,所以完全没法使用

而ES SQL会把查询翻译程API,然后使用API发起查询下面是几段测试SQL,都在1s返回结果:

a) Select count(*) from user_basic_es2 ;

b) Select address_city, gender, count(*) from user_basic_es2 group by address_city, gender

c) Select count(*) from user_basic_es2 where gender=’male’ and address_city=’上’ (result 17274)

d) Select user_id from user_basic_es2 where gender=’male’ (result 61647932)

从上面的结果来看,基本1-2s能返回查询结果

1. 3. 各种使用方式优缺点评估

优势

使用

方式

优势劣势适用场景

API 提供所有的ES功能;最快速需要开发应用来更新及展示数据需求很灵活的情况下

ES-SQL 使用方便;将SQL解析成ES

查询,所以响应快速

不支持数据的插入更新;不能与HIVE中的其他

数据一起使用

用于数据的查询

HIVE 可以同时访问存储在

HDFS/HBASE/ES中的数据

只将ES作为简单的数据存储,并不将SQL解

析成ES查询,所以速度最慢;不能分字段更新

数据,一次只能更新所有字段

用于将hive中的数

据算好以后批量存入

供后续查询

1. 4. ES占用的存储HDFS: 1.3GB

ES: 42GB

总体来说,ES会额外占用不少存储,也是一种空间换时间,但是考虑到未来集群空间比较富裕,所以问题不大

ElasticSearch面试题

1:es介绍 Elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎。设计用于云计算中, 能够达到实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。 普通请求是...get?a=1 rest请求....get/a/1 2:全文搜索的工具有哪些 Lucene Solr Elasticsearch 3:es的bulk的引用场景 1.bulk API可以帮助我们同时执行多个请求 2.create 和index的区别 如果数据存在,使用create操作失败,会提示文档已经存在,使用index则可以成功执行。 3.可以使用文件操作 使用文件的方式 vi requests curl -XPOST/PUT localhost:9200/_bulk --data-binary @request; bulk请求可以在URL中声明/_index 或者/_index/_type 4.bulk一次最大处理多少数据量 bulk会把将要处理的数据载入内存中,所以数据量是有限制的 最佳的数据量不是一个确定的数值,它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载 一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是 5-15MB,默认不能超过100M, 可以在es的配置文件中修改这个值http.max_content_length: 100mb 5.版本控制的一个问题 在读数据与写数据之间如果有其他线程进行写操作,就会出问题,es使用版本控制才避免这种问题。 在修改数据的时候指定版本号,操作一次版本号加1。 6.es的两个web访问工具

Elasticsearch集群

从Elasticsearch集群及数据层架构,看分布式系统设计一、Elasticsearch集群架构 Elasticsearch是一个非常著名的开源搜索和分析系统,目前被广泛应用于互联网多种领域中,尤其是以下三个领域特别突出。 1)搜索领域,相对于solr,真正的后起之秀,成为很多搜索系统的不二之选。 2)Json文档数据库,相对于MongoDB,读写性能更佳,而且支持更丰富的地理位置查询以及数字、文本的混合查询等。 3)时序数据分析处理,目前是日志处理、监控数据的存储、分析和可视化方面做得非常好,可以说是该领域的引领者了。 1、Elasticsearch中几个关键概念 @节点(Node) 物理概念,一个运行的Elasticearch实例,一般是一台机器上的一个进程。 @索引(Index) 逻辑概念,包括配置信息mapping和倒排正排数据文件,一个索引的数据文件可能会分布于一台机器,也有可能分布于多台机器。索引的另外一层意思是倒排索引文件。 @分片(Shard) 为了支持更大量的数据,索引一般会按某个维度分成多个部分,每个部分就是一个分片,分片被节点(Node)管理。一个节点(Node)一般会管理多个分片,这些分片可能是属于同一份索引,也有可能属于不同索引,但是为了可靠性和可用性,同一个索引的分片尽量会分布在不同节点(Node)上。分片有两种,主分片和副本分片。

@副本(Replica) 同一个分片(Shard)的备份数据,一个分片可能会有0个或多个副本,这些副本中的数据保证强一致或最终一致。 用图形表示出来可能是这样子的: ?Index 1: 蓝色部分,有3个shard,分别是P1,P2,P3,位于3个不同的Node中,这里没有Replica。 ?Index 2: 绿色部分,有2个shard,分别是P1,P2,位于2个不同的Node中。并且每个shard 有一个replica,分别是R1和R2。基于系统可用性的考虑,同一个shard的primary和replica不能位于同一个Node中。这里Shard1的P1和R1分别位于Node3和Node2中,如果某一刻Node2发生宕机,服务基本不会受影响,因为还有一个P1和R2都还是可用的。因为是主备架构,当主分片发生故障时,需要切换,这时候需要选举一个副本作为新主,这里除了会耗费一点点时间外,也会有丢失数据的风险。

elasticsearch学习文档

1.全文搜索引擎elasticsearch 1.1.Elasticsearch简介 Elasticsearch是开源的,分布式的,提供rest接口,支持云端调用的,构建在Apache Lucene之上的搜索引擎。 1.2.优点&缺点 优点:开箱即用,分布式,rest 接口,支持云端调用。 缺点:没有大量商业产品应用。分片的数目不能动态调整,只能在初始化索引的时候指定。 2.E lasticsearch的安装 2.1.运行环境 JDK6以上 2.2.下载Elasticsearch 为了更好的对中文进行分词,减少配置问题,下载集成分词的elasticsearch-rtf(基于elasticsearch 0.90.0,目前elasticsearch更新到0.90.5)版本。Rtf集成了ik、mmseg分词以及searchwrapper、thrift等插件。 什么是ElasticSearch-RTF? RTF是Ready To Fly的缩写,在航模里面,表示无需自己组装零件即可直接上手即飞的航空模型,elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,还会帮你做好一些默认的配置,目的是让你可以下载下来就可以直接的使用。下载地址如下:https://https://www.doczj.com/doc/416027580.html,/medcl/elasticsearch-rtf

注释:分词是用于模糊匹配的时候,是把一段话当成词语还是当成单个字来搜索的规则。 2.3.安装 解压elasticsearch-rtf-mast.zip到你指定的目录下即可。 2.4.运行 2.4.1.启动服务 cd/usr/local/elasticsearch/bin/service ./elasticsearch start 第一次启动服务后,在/usr/local/elasticsearch目录生成data目录和logs目录2.4.2.停止服务 cd/usr/local/elasticsearch/bin/service ./elasticsearch stop 3.e lasticsearch配置文件详解 elasticsearch.yml配置文件内容较多,挑几个可能会用的说一下。 https://www.doczj.com/doc/416027580.html,: elasticsearch 配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 https://www.doczj.com/doc/416027580.html,: "Franz Kafka" 节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt 文件中,其中有很多作者添加的有趣名字。 node.master: true 指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。 network.bind_host: 192.168.0.1

elasticSearch

ElasticSearch:可扩展的开源弹性搜索解决方案 开源的分布式搜索引擎支持时间时间索引和全文检索。 索引:index 存放数据 类型:type 区分储存的对象 文档:document 储存的主要实体 页面: field 角色关系对照 elasticsearch 跟 MySQL 中定义资料格式的角色关系对照表如下 MySQL elasticsearch database index table type table schema mapping row document field field http://localhost:9200/mishu_index/hunanzhaobiaowang/ _search?q=title:嘉禾县基本烟田土地整理施工 ElasticSearch官网:https://www.doczj.com/doc/416027580.html,/ 先上一张elasticsearch的总体框架图:

ElasticSearch是基于Lucene开发的分布式搜索框架,包含如下特性: 分布式索引、搜索 索引自动分片、负载均衡 自动发现机器、组建集群 支持Restful 风格接口 配置简单等。 下图是ElasticSearch的第三方插件管理工具,通过它可以很清晰的看到它索引分布的情况:哪块分布在那里,占用空间多少都可以看到,并且可以管理索引。

当一台机挂了时,整个系统会对挂机里的内容重新分配到其它机器上,当挂掉的机重新加 入集群时,又会重新把索引分配给它。当然,这些规则都是可以根据参数进行设置的,非 常灵活。ElasticSearch是先把索引的内容保存到内存之中,当内存不够时再把索引持久化 到硬盘中,同时它还有一个队列,是在系统空闲时自动把索引写到硬盘中。 的后端存储方式可以有一下四种: 1. 像普通的 Lucene 索引,存储在本地文件系统中; 2. 存储在分布式文件系统中,如 freeds; 3. 存储在 Hadoop 的 hdfs中; 4. 存储在亚马逊的 S3 云平台中。 它支持插件机制,有丰富的插件。比如和 mongoDB、couchDB 同步的river 插件,分词插件,Hadoop 插件,脚本支持插件等。 下面介绍elasticsearch的几个概念: cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产 生的,主从节点是对于集群内部来说的。es 的一个概念就是去中心化,字面上理解就是无 中心节点,这是对于集群外部来说的,因为从外部来看 es 集群,在逻辑上是个整体,与 任何一个节点的通信和与整个es 集群通信是等价的。在配置文件中可以配置集群的名字,在同一局域网内的机器,配置相同的cluster名字,将会自动组建集群,不需要其它特殊配置。 shards

ElasticSearch使用手册

ElasticSearch使用手册 一、ElasticSearch简介 1.1.什么是ElasticSearch ElasticSearch(以下均检查ES)是Compass(基于Lucene开源项目)作者Shay Banon在2010年发布的高性能、实时、分布式的开源搜索引擎。后来成立了ElasticSearch公司,负责ES相关产品的开发及商用服务支持,ES依旧采用免费开源模式,但部分插件采用商用授权模式,例如Marvel插件(负责ES的监控管理)、Shield插件(提供ES的授权控制)。 1.2.ElasticSearch的基础概念 ?Collection 在SolrCloud集群中逻辑意义上的完整的索引。它常常被划分为一个或多个Shard,它们使用相同的Config Set。如果Shard数超过一个,它就是分布式索引,SolrCloud让你通过Collection名称引用它,而不需要关心分布式检索时需要使用的和Shard相关参数。 ?Config Set Solr Core提供服务必须的一组配置文件。每个config set有一个名字。最小需要包括solrconfig.xml (SolrConfigXml)和schema.xml (SchemaXml),除此之外,依据这两个文件的配置内容,可能还需要包含其它文件。它存储在Zookeeper中。Config sets可以重新上传或者使用upconfig命令更新,使用Solr的启动参数bootstrap_confdir指

定可以初始化或更新它。 ?Core Core也就是Solr Core,一个Solr中包含一个或者多个Solr Core,每个Solr Core可以独立提供索引和查询功能,每个Solr Core对应一个索引或者Collection的Shard,Solr Core的提出是为了增加管理灵活性和共用资源。在SolrCloud中有个不同点是它使用的配置是在Zookeeper中的,传统的Solr core的配置文件是在磁盘上的配置目录中。 ?Leader 赢得选举的Shard replicas。每个Shard有多个Replicas,这几个Replicas需要选举来确定一个Leader。选举可以发生在任何时间,但是通常他们仅在某个Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此Shard对应的leader,leader 再分发它们到全部Shard的replicas。 ?Replica Shard的一个拷贝。每个Replica存在于Solr的一个Core中。一个命名为“test”的collection以numShards=1创建,并且指定replicationFactor设置为2,这会产生2个replicas,也就是对应会有2个Core,每个在不同的机器或者Solr实例。一个会被命名为test_shard1_replica1,另一个命名为test_shard1_replica2。它们中的一个会被选举为Leader。 ?Shard

Elasticsearch权威指南(中文版)

Elasticsearch 权威指南(中文版) 1、入门 Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度 处理大数据成为可能。 它用于全文搜索、结构化搜索、分析以及将这三者混合使用: 维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-you-mean)等搜索建议功能。 英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。 Github使用Elasticsearch检索1300亿行的代码。 但是Elasticsearch不仅用于大型企业,它还让像DataDog以及Klout这样的创业公司将最初的想法变成可扩展的解决方案。Elasticsearch可以在你的笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据。Elasticsearch所涉及到的每一项技术都不是创新或者革命性的,全文搜索, 分析系统以及分布式数据库这些早就已经存在了。它的革命性在于将这些独立且有用的技术整合成一个一体化的、实时的应用。它对新用户的门槛很低,当然它也会跟上你技能和需求增长的步伐。 如果你打算看这本书,说明你已经有数据了,但光有数据是不够的,除非你能对这些数据做些什么事情。

很不幸,现在大部分数据库在提取可用知识方面显得异常无能。的确,它们能够通过时间戳或者精确匹配做过滤,但是它们能够进行全文搜索,处理同义词和根据相关性给文档打分吗?它们能根据同一份数据生成分析和聚合的结果吗?最重要的是,它们在没有大量工作进程(线程)的情况下能做到对数据的实时处理吗? 这就是Elasticsearch存在的理由:Elasticsearch鼓励你浏览并利用你的数 据,而不是让它烂在数据库里,因为在数据库里实在太难查询了。Elasticsearch是你新认识的最好的朋友。 1.1、是什么 为了搜索,你懂的 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。 Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: ?分布式的实时文件存储,每个字段都被索引并可被搜索 ?分布式的实时分析搜索引擎 ?可以扩展到上百台服务器,处理PB级结构化或非结构化数据

elasticsearch client接口详解

elasticsearch java api——客户端org.elasticsearch.client org.elasticsearch.client.AdminClient接口 AdminClient下有两个方法: 1)cluster(),产生一个允许从集群中执行action或操作的client; 2)indices(),产生一个允许从索引中执行action或操作的client。 AdminClient接口有两个实现类,分别为 org.elasticsearch.client.AdminClient.NodeAdminClient和 org.elasticsearch.client.transport.support.InternalTransportAdminClient。 1.1org.elasticsearch.client.AdminClient.NodeAdminClient类NodeAdminClient有一个带有@Inject注解的构造器,并实现了接口AdminClient 的两个方法,如下所示: [java]view plaincopy 1.@Inject 2.public NodeAdminClient(Settings settings,NodeClusterAdmi nClient clusterAdminClient,NodeIndicesAdminClient indice sAdminClient){ 3.super(settings); 4.this.indicesAdminClient=indicesAdminClient; 5.this.clusterAdminClient=clusterAdminClient; 6.} 7. 8.@Override 9.public IndicesAdminClient indices(){ 10.return indicesAdminClient; 11.} 12. 13.@Override 14.public ClusterAdminClient cluster(){ 15.return this.clusterAdminClient; 16.} @Inject导致了一个直接的后果:你只能通过被@Inject标注的构造器生成实例。

ElasticSearch

ElasticSearch ES评估资料 通过开发机登陆hadoop03:9200/_plugin/sql 可以访问 ES调研结果 以下是我们对于ES的调研结果(调研主要是锦明完成的,我主要把各项数据总结一下) 我们已经在开发机上部署了ES以及ES SQL,ES Hadoop插件,大家如果要访问ES SQL的话可以通过开发机登陆 hadoop03:9200/_plugin/sql 1. 1. 使用方式: 目前在我们的环境中ES大致有下面三种使用方式可供先择: a) 调用Estate的restfule API/Java API用于做数据的增删改查。经测试这种方法效率最高 b) 布署ES-SQL插件,提供SQL的方式插入,删除,修改以及查询; c) 布置es-hadoop插件,将es与hive集成; 通过hive SQL进行数据的批量插入和查询 1. 2. 性能评估 测试对象:user_basic_es2,记录数目74228947,字段数70-80

使用方式 操作 API ES-SQL HIVE 批量插入7500万40mins(数据要提前准备好) 不支持90mins 批量更新7500万40mins(数据提前准备好)不支持现有配置Hive语法不支持更新 删除数据1s 1s 现有配置Hive方法不支持更新 单表查询-where过滤 1s 1s 60mins 单表查询-Group By 1s 1s 60mins Hive之所以查询慢是因为hive并没有用到ES的索引,查询的时候只是把数据都读了出来在map端进行过滤以及之后的操作,所以完全没法使用 而ES SQL会把查询翻译程API,然后使用API发起查询下面是几段测试SQL,都在1s返回结果: a) Select count(*) from user_basic_es2 ; b) Select address_city, gender, count(*) from user_basic_es2 group by address_city, gender c) Select count(*) from user_basic_es2 where gender=’male’ and address_city=’上’ (result 17274) d) Select user_id from user_basic_es2 where gender=’male’ (result 61647932) 从上面的结果来看,基本1-2s能返回查询结果 1. 3. 各种使用方式优缺点评估 优势 使用 方式 优势劣势适用场景 API 提供所有的ES功能;最快速需要开发应用来更新及展示数据需求很灵活的情况下 ES-SQL 使用方便;将SQL解析成ES 查询,所以响应快速 不支持数据的插入更新;不能与HIVE中的其他 数据一起使用 用于数据的查询 HIVE 可以同时访问存储在 HDFS/HBASE/ES中的数据 只将ES作为简单的数据存储,并不将SQL解 析成ES查询,所以速度最慢;不能分字段更新 数据,一次只能更新所有字段 用于将hive中的数 据算好以后批量存入 供后续查询 1. 4. ES占用的存储HDFS: 1.3GB ES: 42GB

ElasticSearch5.1 基本概念和配置详解

二、几个基本概念 接近实时(NRT) Elasticsearch 是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是1 秒)。 集群(cluster) 代表一个集群,集群中有多个节点(node),其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。 索引(index)

ElasticSearch将它的数据存储在一个或多个索引(index)中。用SQL领域的术语来类比,索引就像数据库,可以向索引写入文档或者从索引中读取文档,并通过ElasticSearch内部使用Lucene将数据写入索引或从索引中检索数据。文档(document) 文档(document)是ElasticSearch中的主要实体。对所有使用ElasticSearch 的案例来说,他们最终都可以归结为对文档的搜索。文档由字段构成。 映射(mapping) 所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做映射(mapping)。一般由用户自己定义规则。类型(type) 每个文档都有与之对应的类型(type)定义。这允许用户在一个索引中存储多种文档类型,并为不同文档提供类型提供不同的映射。 分片(shards) 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 副本(replicas) 代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。 数据恢复(recovery)

Elasticsearch索引的架构设计

Elasticsearch索引的架构设计

目录 1、Elasticsearch 索引的设计 (3) 注意1:不要在一个索引中定义多个type。 (6) 注意2:将Set _source设置为false。 (6) 注意3:将_all设置为false。 (7) 注意4:设置dynamic = strict。 (7) 注意5:使用keyword类型 (8) 注意6:使用别名 (9) 2、Elasticsearch分片分配原则 (10) 步骤1:定义索引 (11) 步骤2:评估数据量 (11) 步骤3:评估索引大小和磁盘空间 (12) 步骤4:计算分片数 (12) 步骤5:评估索引数和类型 (12) 3、数据去重的思考 (12)

1、Elasticsearch 索引的设计 1.1 单一索引还是基于时间的索引? 单一索引的问题: 1)不能更新Mapping。 比如:主分片数不可以修改(除非reindex)。2)无法灵活、快速地扩展。 3)更适合固定、小型数据集。 基于时间的索引面临的问题:

1)如何确定间隔? ?数据量 ?变更频率 ?默认尝试每周为单位分割——建议 2)如何实施? ?索引模板 1.2 定义索引注意事项 举例: { "facet_internet_access_minute":{ "template":"ce-index-access-v1-*", "order":0, "settings":{ "number_of_shards":5 }, "aliases":{

"{index}-query":{ } }, "mappings":{ "es_doc":{ "dynamic":"strict", "_all":{ "enabled":false }, "_source":{ "enabled":false }, "properties":{ "CLF_Timestamp":{ "type":"long" }, "CLF_CustomerID":{ "type":"keyword" }, "CLF_ClientIP":{ "type":"ip",

大数据技术之elasticsearch【下】

大数据技术之Elasticsearch【下】 3.1.6 新建文档(源数据map方式添加json) 1)源代码 @Test public void createIndexByMap() { // 1 文档数据准备 Map json = new HashMap(); json.put("id", "2"); json.put("title", "基于Lucene的搜索服务器"); json.put("content", "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口"); // 2 创建文档 IndexResponse indexResponse = client.prepareIndex("blog", "article", "2").setSource(json).execute().actionGet(); // 3 打印返回的结果 System.out.println("index:" + indexResponse.getIndex()); System.out.println("type:" + indexResponse.getType()); System.out.println("id:" + indexResponse.getId()); System.out.println("version:" + indexResponse.getVersion()); System.out.println("result:" + indexResponse.getResult()); // 4 关闭连接 client.close(); } 2)结果查看 3.1.7 新建文档(源数据es构建器添加json) 1)源代码

ElasticSearch分布式搜索引擎在导航大数据检索中的应用_孟方园

Elasticsearch distributed search engine application in Navigation Big Data Retrieval Fangyuan Meng 1, Tao Wei1,2 1. Beijing Satellite Navigation Center, Beijing, China 2. Sichuan University, Chengdu, China 1. 185427910@https://www.doczj.com/doc/416027580.html,, 2. 675279854@https://www.doczj.com/doc/416027580.html, Abstract: Nowadays, satellite navigation has been applied to all aspects of people's livelihood, infrastructure and national defense because of its high precision, all-weather and non-ground station restrictions. How to ensure the stability of the system related to the national economy and the people's livelihood. In the large-scale satellite navigation and positioning system, the analysis and processing of the massive log and the monitoring of the system status are the key factors to ensure the stability of the system. The existing system through the log troubleshooting issues are through the remote login server to the appropriate directory query,time-consuming and laborious. This paper presents a log analysis and monitoring system based on Elasticsearch, Logstash and Kibana, which is used to collect and retrieve massive log and system information in real time. This system can find, locate and deal with system abnormity more quickly and improve the usability of satellite system. This paper describes the framework of the system, the function and working principle of each component, and describes in detail the process of collecting, filtering and indexing the log and system information to the final query and display.The results show that the method can be used to improve the system in the event of failure through the log for investigation and processing speed. Keywords: Navigation Big Data;Elasticsearch;Real-Time Search;Distributed ElasticSearch分布式搜索引擎在导航 大数据检索中的应用 孟方园1,魏涛1,2 1.北京卫星导航中心,北京,中国,100094 2.四川大学,成都,中国,610065 1. 185427910@https://www.doczj.com/doc/416027580.html,, 2. 675279854@https://www.doczj.com/doc/416027580.html, 【摘要】人类利用太阳,地磁及其他天体进行导航已有数千年历史,随着上世纪70年代GPS的出现,卫星导航开启了人类导航的新篇章。在互联网迅猛发展的带动下,基于卫星导航的应用和产品层出不穷,随之而来的是日益增长的海量卫星导航数据,导航数据区别于其他数据的一大特点是它的时空特性。本文提出一种基于ElasticSearch分布式搜索引擎的导航大数据处理技术,可高效、可靠的对导航大数据进行导入、索引和分布式存储,并以近实时的性能进行全文检索及按字段检索,特别对包含位置信息的数据实现了地理检索功能,同时提供冲突管理,容灾备份,RESTful API等多项特性。利用该技术可大幅提高分析和处理海量卫星导航数据的效率。文中使用实际的GSP数据进行测试,实测表明在百万到千万级导航数据量下,该方法具有较好的可靠性和性能。 【关键词】Elasticsearch;实时搜索;分布式 1 引言 现如今,卫星导航技术已充分运用在各行各业之中,具体地说,就是把导航芯片嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将其与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,通过获取各类设备产生的数据,并对这些海量数据进行分析处理,从而实现提高资源利用率和生产力水平,改善人与自然间关系的目的。然而随着数据量的日益增长以及导航数据的时空特性,对如何高效的处理这类数据提出了挑战。 利用分布式[1,2]的方式处理大数据是一个有效的措施,分布式ElasticSearch构建的检索系统近年来也不断出现,如陈亚杰等人研究的基于分布式ElasticSearch 的天文大数据检索[3],姜康等人讨论了基于

ElasticSearch基础知识

Elasticsearch介绍 Elasticsearch是个全文搜索服务器,简称ES,它相当于一个数据库,也有增删改查操作。为什么不直接用数据库呢?因为在全文搜索方面它比数据库更快、更智能。 更快:倒排索引,对文档分词,给每一个词建立索引,标记在那一条记录中有出现 更智能:对数据进行分词,分词之后进行标准化处理,它可以搜索匹配度、大小写、近义词等 Elasticsearch head和kibana两种客户端工具可选,使用Restfull风格的查询语句Elasticsearch和mysql结构对比 Restfull风格的查询语句

ES在wonder 的使用架构 索引index 由具有相同字段的文档列表组成,相当于mysql中的表。?每个索引都有自己的mapping定义,用于定义字段名和类型 ?索引中存储着具有相同结构的文档

节点Node 一个Elasticsearch的运行实例,集群的其中一个构成单元。 正排索引 维护文档id到内容、单词的关联关系,例如 倒排索引 MySQL like查询需要一行一行的查找,ES有了倒排索引就就能知道关键字在第几行出现了。加快了查询效率,标准化处理是搜索更加智能,意思大小写、匹配度、同义词、 维护单词到文档id的关联关系,例如 分片 分片是Elasticsearch在集群周围分发数据的单位。Elasticsearch在重新平衡数据时(例如发

生故障后)移动分片的速度取决于分片的大小和数量以及网络和磁盘性能。 文档Document 文档Document 核心数据类型 用户存储在es中的数据文档,相当于mysql的表中的一行,Json结构形式,由字段组成,常见数据类型如下: ●字符串:text、keyword,text是分词,keyword是不分词的 ●数值型:long、integer、short、byte、double、float、half_float、scaled_float ●布尔:boolean ●日期:date 不分词,必须全匹配 ●二进制:binary ●范围类型:integer_range、float_range、long_range、double_range、date_range

elasticsearch与hadoop比较

Elasticsearch与hadoop比较 作者:谭林,新炬网络高级技术专家。 在过去的几年的日志分析领域,开源搜索引擎Elasticsearch已经变得越来越流行,连同其开源的服务器端的日志收集产品Logstash及其流行的开源可视化工具kibana,功能强大的ELK分析组合正蓄势待发。 Elasticsearch是一个基于Lucene的分布式搜索服务器是,它存储json格式的文档数据,有基于RESTful的操作接口,利用Elasticsearch可以方便的在任何Web应用中集成搜索应用,另外它更有出色的聚合功能(aggregation)能轻松的对数据进行统计分析,这一点上Elasticsearch已经超越了其最初的纯搜索引擎的角色,但是如果真正应用它来做为复杂的数据分析工具,它能打败hadoop或spark吗? Elasticsearch流行的原因有三: 1.Elasticsearch集群实例很容易搭建。 2.基于json格式的查询语言比开发MapReduce或spark系统更容易掌握。 3.开发人员可以很方便的将Elasticsearch集成到Hadoop中。 这些都是非常引人注目特性,利用Elasticsearch能快速搭建起一套分析系统。但是否可以认为Elasticsearch就是一个高度可用的数据分析平台了?要成为一个成熟的高可用的数据分析平台,一个高可用的数据存储系统和一套可以支撑复杂数据计算框架是必不可少的。 对于分布式数据存储,Elasticsearch集群中的数据一致性,正是我们担心的问题之一。正常情况下,集群中的所有的节点,应该对集群中master的选择是一致的,这样获得的状态信息也应该是一致的,由于Elasticsearch集群中每个节点都是状态维护者,在集群中网络不稳定的情况下就有可能出现集群脑裂(不同的节点对master节点的选择出现了异常)。如图所示正常环境下的Elasticsearch集群。

Elasticsearch工具类使用介绍

Elasticsearch工具类使用说明 目录 1. 连接Elasticsearch服务 (2) 2. 创建索引 (2) 3. 删除索引 (2) 4. 获取索引 (2) 5. 插入数据 (2) 6. 批量插入数据 (2) 7. 更新数据 (3) 8. 批量更新数据 (3) 9. 删除数据 (3) 10. 批量删除数据 (3) 11. 根据id查询数据 (3) 12. 根据id批量查询数据 (3) 13. 统计count (4) 14. 分组统计count (4) 15. 根据条件查询一条数据 (4) 16. 根据条件查询一批数据 (4) 17. 根据条件查询一页数据 (5) 18. 分组查询 (5) 19. 滚动查询数据 (6)

//第一种创建索引test impl.getElasticsearchUtil().createIndex("test"); // 第二种创建索引test,指定字段,分片数,副本数 List columns = new ArrayList<>(); Field col = new Field(); col.setName("city"); col.setType(Field.type_keyword); columns.add(col); Field col1 = new Field(); col1.setName("age"); col1.setType(Field.type_integer); columns.add(col1); Field col2 = new Field(); col2.setName("birth"); col2.setType(Field.type_date); col2.setFormat(Field.date_format_simple); columns.add(col2); impl.getElasticsearchUtil().createIndex("test", columns, 5, 1); 3.删除索引 // 删除索引test impl.getElasticsearchUtil().deleteIndex("test"); 4.获取索引 // 获取集群中所有的索引名称 List indices = impl.getAllIndexs(); 5.插入数据 // 插入数据 JSONObject data = new JSONObject(); data.put("id", "1");//id如果不指定,会自动生成uuid data.put("age", 43); data.put("city", "南京"); data.put("birth", "1975-10-12"); impl.addData("test", data, "id"); 6.批量插入数据 // 批量插入数据 List datas = new ArrayList<>(); JSONObject data1 = new JSONObject(); data1.put("id", "1"); data1.put("age", 43); data1.put("city", "南京");

Elasticsearch插件体系

Elasticsearch插件体系 插件分类 Elasticsearch支持三种类型的插件: 1、java插件 这些插件只包含Jar文件,并且必须安装在集群中的每个节点上。安装后,每个节点必须重新启动,该插件才变得可见。 2、站点插件 这些插件包含了静态的Web内容,如JavaScript,HTML和CSS文件,可直接从Elasticsearch 访问。站点插件可能只需要在一个节点上安装,并且不需要重新启动就能变得可见。 站点插件的内容是通过一个类似的网址访问: HTTP:/ / yournode:9200 / _plugin / [插件名称] 3、混合插件 混合插件同时包含jar文件和静态的Web内容 插件管理 命令查看 1、查看plugin命令用法: 插件安装 2、安装Elasticsearch核心插件命令格式: 例子: 该命令将安装与你的Elasticsearch版本相匹配的插件版本。

3、安装社区插件或非核心插件 非核心插件由Elasticsearch提供,或者由社区提供,可以从download.elastic.co,Maven (中央和Sonatype),或从GitHub安装。在这种情况下,命令如下: 例子: sudo bin/plugin install lmenezes/elasticsearch-kopf sudo bin/plugin install lmenezes/elasticsearch-kopf/2.x Installs the latest version from GitHub. Installs the 2.x version from GitHub. 从Maven Central/Sonatype安装时, [org]需要替换为groupId, [user|component]替换为artifactId. For plugin from Sonatype, run: sudo bin/plugin install org.elasticsearch.plugin/mapper-attachments/3.0.0 当从 download.elastic.co或Maven Central/Sonatype安装时, version 是必须的。 自定义URL或文件系统 插件可以直接从自定义URL下载,格式如下: sudo bin/plugin install [url] must be a valid URL, the plugin name is determined from its descriptor. 例如从本地文件系统安装插件: sudo bin/plugin install file:///path/to/plugin.zip The plugin script will refuse to talk to an HTTPS URL with an untrusted certificate. To use a self-signed HTTPS cert, you will need to add the CA cert to a local Java truststore and pass the location to the script as follows: sudo bin/plugin https://www.doczj.com/doc/416027580.html,.ssl.trustStore=/path/to/trustStore.jks install https://....

相关主题
文本预览
相关文档 最新文档