Elasticsearch提供了replica解决方案,它可以帮我们解决了如果有一个或多个node失败了,那么我们的数据还是可以保证完整的情况,并且搜索还可以继续进行.但是,有一种情况是我们的所有的node,或者有一部分node失败,可能会造成我们的数据的丢失.也就是说replca不能提供一种灾难性的保护机制.我们需要一种完整的备份机制. Snapshot及Restore 在Elastic里,我们提供了一个叫做snapshot及restore API的接口.使您可以使用数据和状态快照备份您的El…
非原创,只是留作自己查询使用,转自http://keenwon.com/1393.html Elasticsearch的备份和恢复 备份 Elasticsearch的一大特点就是使用简单,api也比较强大,备份也不例外.简单来说,备份分两步:1.创建一个仓库.2.备份指定索引.下面一步一步来: 1.创建一个仓库(creating the repository) 假如共享文件存储介质挂载在/mount/backups/my_backup目录下,需要在elasticsearch.yml添加如下配置:…
因为项目开发使用的是Java语言, 项目的开发架构是Spring MVC+ maven的jar包管理,  所以今天重点说说ES 5.4.3 的Java API的源码实战 1. pom.xml文件增加依赖: <!-- elasticsearch --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <…
elasticsearch数据备份还原 1.在浏览器中运行http://XXX.XXX.XXX.XXX:9200/_flush,确保索引数据能保存到硬盘中. 2.原数据的备份.主要是elasticsearch数据目录下的nodes目录的备份.nodes目录为索引数据目录. 3.将原集群中的每个elasticsearch节点下的data目录拷贝至新的elasticsearch数据目录下. 4 利用快照来备份还原. 下面是备份及还原的脚本,分别存成 esback.sh,esrestore.sh,并…
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇:词条查询 ElasticSearch查询 第四篇:匹配查询(Match) ElasticSearch查询 第五篇:布尔查询 不同于SQL语言,对ElasticSearch引擎发送的查询请求,有两种方式:第一种方式是使用RESTful 风格的API请求对数据进行搜索或更新,这意味着,必须使用搜索API向Elas…
Elasticsearch入坑指南之RESTful API Tags:Elasticsearch ES为开发者提供了非常丰富的基于Http协议的Rest API,通过简单的Rest请求,就可以实现非常强大的功能 常用RESTful API介绍 查询集群健康信息 http://10.100.172.116:9200/_cat/health?v #通过下面的请求可以查看返回结果各字段的意义: http://10.100.172.116:9200/_cat/health?help 查看集群中节点信息…
前言 之前安装的是elasticsearch-6.5.0,漏洞扫描报The remote web server hosts a Java application that is vulnerable.,给出的解决方案是将版本升级到elasticsearch-6.5.2以上. 121249 - Elasticsearch ESA-2018-19- Synopsis The remote web server hosts a Java application that is vulnerable.…
工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照数据: 1:建立数据挂载点 1)ES所有节点安装sshfs,可通过yum源安装,依赖epel: 2)安装sshfs后,规划共享目录挂载点,并确定目标挂载点,注意这里要为每个节点的共享目录分配读写权限,如不确定,直接chmod 777 -共享目录路径: 3)通过如下指令挂载共享目录至目标主机路径: #…
ES安装与启动 在官网下载压缩包,解压后直接运行bin目录下的.bat文件即可.下载地址戳这里. ES配置集群 Elasticsearch配置集群很简单,只要配置一个集群的 名称 ,ES就会自动寻找并加入到其中. 并且会自动的进行分片.备份等等操作. 配置方式: 直接修改conf/elasticsearch.yml ES查询集群状态 使用ES的REST API可以做到下面的事情: 1 管理集群,节点,索引数据和元数据 2 执行创建,读取,更新和删除操作,以及根据索引查询 3 执行更深入的操作,比…
//官方的 php  api写的鸡肋了,下面这个类可以使用 es api 操作. <?php class ElasticSearch { public $index; function __construct($server = 'http://localhost:9200'){ $this->server = $server; } function call($path, $http = array()){ if (!$this->index) throw new Exception(…
dump 其实 dump 的功能颇强,他除了可以备份整个文件系统之外,还可以制定等级喔!什么意思啊! 假设你的 /home 是独立的一个文件系统,那你第一次进行过 dump 后,再进行第二次 dump 时, 你可以指定不同的备份等级,假如指定等级为 1 时,此时新备份的数据只会记录与第一次备份所有差异的文件而已. 看不懂吗?没关系!我们用一张简图来说明. 如上图所示,上方的『即时文件系统』是一直随著时间而变化的数据,例如在 /home 里面的文件数据会一直变化一样. 而底下的方块则是 dump…
1.背景: 最近公司为了适应业务的发展,利用elasticsearch搜索引擎搭建了两个节点.为了防止数据丢失的特殊情况,需要定时做数据备份,而由于elasticsearch为两个节点分别在不同的服务器ip,即需要创建共享文件系统,也就是大家都能访问的一个共享文件夹. (说明:linux系统使用centos 7) 2.内容: 1)创建共享文件 执行下面的命令 yum -y install epel-release # 安装epel 源码 yum -y install fuse-sshfs # 安…
备份脚本 es_backup.sh : #!/bin/bash#备份昨天数据,删除30天前索引 host=`hostname`address="xxx@xxx.com" es_user=$1 es_passwd=$2 #获取昨天日期(备份使用) date_yesterday=`date -d "-1 day" +%Y.%m.%d` #获取当前时间戳 date_now=`date +%s` #获取一个月前的日期 date_month_ago=`date -d@$[ $…
之前在 2.X版本里 这个Delete By Query功能被去掉了 因为官方认为会引发一些错误 如需使用 需要自己安装插件. bin/plugin install delete-by-query 需要使用时 DELETE /索引名/需要清空的type/_query { "query": { "match_all": {} } } 那么在5.x版本中 这个api又被官方重新加回自带功能.新特性里是这么说的. Delete-by-query 和 Update-by-q…
1.创建一个mavan项目,项目的以来配置如下. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven…
在源码概述中我们分析过,elasticsearch源码从功能上可以分为分布式功能和数据功能,接下来这几篇会就分布式功能展开.这里首先会对cluster作简单概述,然后对cluster所涉及的主要功能详细分析. elasticsearch的集群功能代码在cluster包中,通过ClusterService接口对外暴露.cluster主要包括以下功能:发现(Discovery),路由(routing),传送功能(transport),集群状态(clusterstates)等.发现功能功能主要用于节点…
记录关于Elasticsearch的文档删除API的学习 首先官网上Document APIs介绍了 Delete API 和Delete By Query API. Delete API可以通过指定索引–>类型–>id的方式对文档进行删除 DELETE /index/type/11响应body {    "_shards" : {        "total" : 2,        "failed" : 0,        &qu…
vim /etc/elasticsearch/elasticsearch.yml path.repo: ["/data/backups/es_backup"] #备份目录,根据自己情况进行填写 systemctl restart elasticsearch.service mkdir -pv /data/backups/es_backup /data/backups/es_backup chown elasticsearch:elasticsearch /data/backups/es…
1.恢复备份好的snapshot 1.1恢复snapshot_1下的所有index POST _snapshot/my_backup/snapshot_1/_restore 1.2恢复snapshot_1下指定的index POST /_snapshot/my_backup/snapshot_1/_restore { "indices": "index_1", "rename_pattern": "index_(.+)", &…
S 使用nginx代理kibana并设置身份验证 https://blog.csdn.net/wyl9527/article/details/72598112 使用nginx代理kibana并设置身份验证 https://www.cnblogs.com/keithtt/p/6593866.html nginx机器执行shell命令,生成用户名和密码. [root@sftssitweb05 ~]# printf "admin:$(openssl passwd -crypt admin)\n&quo…
通常的搜索引擎,都会根据用户的输入,实时给予匹配的提示. 那么这个功能在elasticsearch中如何实现呢? Elasticsearch里设计了4种类别的Suggester,分别是: Term Suggester Phrase Suggester Completion Suggester Context Suggester 我是采用Completion Suggester来实现的. 原理的文章网上有很多,这里不多说.我们直接上代码: package com.cs99lzzs.elastics…
ES有多种查询方式,我自己的业务是需要对多个字段进行查询,具体实现类代码如下. package com.cs99lzzs.elasticsearch.service.imp; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.annotation.Resour…
这个其实比较简单,直接上代码. 注意部分逻辑可以换成你自己的逻辑 package com.cs99lzzs.elasticsearch.service.imp; import java.sql.Timestamp; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap…
之前开发使用的其实都是lowLevel的api,所谓lowlevelapi就是操作ES的json字符串要自己去写:所谓highlevel的api就是指将查询的json字符串给对象化,创建一个SearchSourceBuilder 对象,设定from,size等属性来实现:而且现在higlevel api实现的功能并不完备: 对于ES查询语法很熟悉其实大可以直接使用LowLevel API,其实可能更加方便.  …
查看ES各个分片的状态 $ curl -XGET http://127.0.0.1:9200/_cluster/health?pretty { "cluster_name" : "elasticsearch_brew", "status" : "yellow", "timed_out" : false, "number_of_nodes" : 1, "number_of_dat…
1.增加Index PutMappingRequest mapping = Requests.putMappingRequest(indices).type(mappingType).source(getNewsMapping()); client.admin().indices().putMapping(mapping).actionGet(); client.close(); 2.删除Index DeleteIndexResponse del=client.admin().indices()…
使用插件repository-hdfs插件进行测试 下载地址: https://oss.sonatype.org/content/repositories/snapshots/org/elasticsearch/elasticsearch-repository-hdfs/ https://oss.sonatype.org/content/repositories/snapshots/org/elasticsearch/elasticsearch-repository-hdfs/2.3.4.BUI…
上一篇通过clusterservice对cluster做了一个简单的概述, 应该能够给大家一个初步认识.本篇将对cluster的代码组成进行详细分析,力求能够对cluster做一个更清晰的描述.cluster作为多个节点的协同工作机制,它需要节点,节点间通信,各个节点的状态及各个节点上的数据(index)状态.因此这一部分代码包括了上述的几个部分. 首先是节点(DiscoveryNode),这里的节点不同于之前所说的node,只是集群上一个逻辑意义上的节点,只是一个实际节点的描述信息.它实现了S…
ES数据备份找了一些方法,发现elasticdump 这个工具不错 elasticdump --input=http://192.168.0.92:9200/hs2840 --output ./hs2840_data_201905.json --type=data type:可以导出数据或者mapping Examples: # Copy an index from production to staging with mappings:elasticdump \ --input=http://…
How to resolve unassigned shards in Elasticsearch 转自:https://www.datadoghq.com/blog/elasticsearch-unassigned-shards/   In Elasticsearch, a healthy cluster is a balanced cluster: primary and replica shards are distributed across all nodes for durable…