ES:记录curator+nfs进行索引备份、创建快照的一次实践

1. 安装curator工具

下面是我离线安装的过程
https://blog.csdn.net/weixin_43736084/article/details/121775484?spm=1001.2014.3001.5501

2.使用fs建立es存储库

我们使用NFS,下面是官网给出的几种仓库类型
在这里插入图片描述

2.1 fs建立存储库的注意事项

注意事项,要不然后面创建仓库会失败:

  1. 各台机器之间使用的用户的uid和gid必须一样(启动es的用户),我这里uid=1000 gid=1003,不一样需要进行修改

查看:

# 各台机器都是一样的1000和1003
[root@localhost yuantek]# id es
uid=1000(es) gid=1003(xyc) groups=1003(xyc)

修改:

usermod  -u 1000 es
groupmod -g  1003 es

2.2 NFS建立共享文件夹

在某一台节点上创建目录, 注:快照数据会全部写入到当前节点的当前目录下,并不是分布式的,注意磁盘空间

# 来查看下所要备份的索引的大小,我这里1.1T的大小
GET /_cat/indices?v
green  open   xxxx  RGagjw1FSnSB5Y38kV-JaF  12   1  154756020   34013577   1.1tb    567.3gb
  1. 创建目录
[root@localhost ~]# mkdir /chun/snapshot -R es:es如果已经创建了好了,就修改权限
[root@localhost ~]# chown es:es /chun/snapshot
  1. 编辑 nfs 配置文件
[root@localhost /]# cat /etc/exports
/chun/snapshot *(insecure,rw,sync,no_root_squash,anonuid=1000,anongid=1003)
  1. 查看共享目录和状态
[root@localhost /]#  exportfs  -rv
exporting *:/chun/snapshot

4.其他节点挂在共享目录:(在其他节点上执行)

(192.168.2.132,192.168.2.133上分别执行)[root@localhost ~]# mount -t nfs 192.168.2.131:/chun/snapshot /chun/snapshot

5.开机挂载(因为开机后失效)

开机挂载NFS目录(在其他节点上执行)#编辑fstab文件
[root@localhost ~]# cat  /etc/fstab  |grep  nfs
192.168.2.131:/chun/snapshot           /chun/snapshot       nfs     defaults,_netdev  0 0

2.3 修改ES配置文件,每台节点都加入

添加存储库路径,添加:path.repo: ["/chun/snapshot"]

[root@localhost ~]# cat  /opt/elasticsearch-6.5.1/config/elasticsearch.yml |grep  path.repo
path.repo: ["/chun/snapshot"]

3.3 重启ES集群,使配置生效

1.最好是一台一台重启,防止es重新索引时间过长,导致集群长时间red
2.关闭分片

PUT /_cluster/settings
{"transient": {"cluster.routing.allocation.enable":"none"}
}

3.kill掉es进程

jps -l |grep Elastic |awk '{print $1}' |xargs kill -9

4.重启es

su es;./elasticsearch -d

5.开启分片

PUT /_cluster/settings
{"transient": {"cluster.routing.allocation.enable":"all"}
}

6.等待集群green后,重复上述步骤,重启其他节点,master最后再重启就行

3.4 创建快照库

location如果是相对路径就是在path.repo配置的目录下创建快照库文件
如果是绝对路径父目录也要是path.repo,/chun/snapshot/chun_backup

PUT /_snapshot/chun_backup
{"type": "fs","settings": {"location": "chun_backup","compress": true}
}
参数介绍,根据实际情况选择,默认速率是20MB
{"type": "fs",	#共享文件夹"settings": {"location": "chun_backup",         #存储库位置"max_restore_bytes_per_sec":"10mb",       #恢复最大速率"compress":"true",                     #是否压缩"max_snapshot_bytes_per_sec":"10mb",        #创建最大速率"chunk_size":"100mb"                       #压缩块大小 
}

查看快照库
POST /_snapshot/chun_backup/_verify

3.5 curator备份索引

工具安装在最上面
文件如何写参照官网配置,下面是我实际使用的:

创建curator.yml文件

---
# Remember, leave a key empty if there is no value.  None will be a string,
# # not a Python "NoneType"
client:#es集群iphosts:- 192.68.2.131- 192.68.2.132- 192.68.2.133port: 9201url_prefix:use_ssl: Falsecertificate:client_cert:client_key:ssl_no_validate: Falseusername: elasticpassword: chunchuntimeout: 30master_only: Falselogging:loglevel: INFO#日志路经logfile: /chun/curator-5.8.4/log/run.loglogformat: defaultblacklist: ['elasticsearch', 'urllib3']

创建action.yml文件

actions:1:action: snapshotdescription: >-Back up the index, and then solve the inconsistency between ES and HBase data.options:repository: chun_back# Leaving name blank will result in the default 'curator-%Y%m%d%H%M%S'name: chun_back_2021-12-09wait_for_completion: True# max_wait: 3600# wait_interval: 10ignore_unavailable: Falseinclude_global_state: Truepartial: Falseskip_repo_fs_check: Falsefilters:- filtertype: patternkind: prefixvalue: 'chun'

执行:

命令:
curator --config config.yml action.yml**最好在后台执行,防止备份时间长想要关闭终端导致失败,使用screen建立一个后台终端
[root@localhost ~]# screen -S esbak执行备份命令
[root@localhost curator-5.8.4]# curator --config curator.yml action.yml退出此终端
按快捷键 ctrl + a + d查看创建的screen终端
[root@localhost ~]# screen -ls
There is a screen on:37910.esbak	(Detached)
1 Socket in /var/run/screen/S-root.重新进入
[root@localhost ~]# screen -r esbak

至此整个备份过程就结束了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】1.2异步编程:使用线程池管理线程

从此图中我们会发现 .NET 与C# 的每个版本发布都是有一个“主题”。即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程。现在我为最新版本的“异步编程”主题写系列分享,期待你的查看及点评。 传送门:异步编程系列目录……

python matplotlib画散点图_python matplotlib库绘制散点图例题解析

假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16…

Hadoop集群HDFS各节点磁盘使用率不平衡,使用balancer做数据平衡

HDFS上各节点磁盘大小不一致,新增节点 数据平衡前,是非常不均衡的,某些节点已经接近90了 集群的数据平衡已经迫在眉睫,必须要搞一搞了。 1.设置传输速率 我这里是万兆网卡,就先设置100M了 在两台master上分别执行&a…

【转】1.3异步编程:线程同步基元对象

开始《异步编程:同步基元对象(上)》 示例:异步编程:线程同步基元对象.rar 如今的应用程序越来越复杂,我们常常需要多线程技术来提高我们应用程序的响应速度。每个线程都由自己的线程ID,当前指令…

怎么查询共享使用人_企业微信微盘怎么共享使用?企业微信如何设置微盘权限?...

使用企业微信办公时,如果有文件需要共享给员工,我们可以将文件上传到微盘的共享空间中,让员工自行下载并查看。那么在企业微信中,我们该如何创建共享空间呢?1如何创建微盘共享空间企业微信微盘共享空间分为两种&#x…

HDFS和Spark配置LZO压缩,Spark读取LZO创建正常Task数量

1.说明 为了解决,数据日益增长并且目前使用Snappy压缩导致的Spark读取时会出现OOM,并且处理起来速度过慢的问题,决定使用LZOIndex来解决问题。 线上Hadoop版本3.2.1,Spark2.3.1,Lzo使用最新版0.4.21 2.未解决的问题…

提供写入的数据少于指定的数据_指定范围数据的汇总

下图(左表)记录的是某公司各部门员工的月薪,现需要根据下图(右表)对指定范围内的月薪进行汇总1、汇总月薪在【2000-4000元】范围内的工资总额。本案例的难点是:【工资总额】数据即是求和列,也是条件列,那么求和函数应该怎么写呢&a…

【转】1.4异步编程:轻量级线程同步基元对象

开始《异步编程:同步基元对象(下)》 示例:异步编程:轻量级线程同步基元对象.rar 在《异步编程:线程同步基元对象》中我介绍了.NET4.0之前为我们提供的各种同步基元(包括Interlocked、Monitor\l…

Windows高级编程学习笔记(一)

写在前面的话 之前学的Windows编程都是界面啊、网络编程啊之类的纯应用层面的东西,总是感觉而自己没有达到自己期望中的水平。什么水平呢?如果让你编写监控系统资源的工具,或者DLL注入相关软件,或者底层安全软件,可以胜…

【转】1.5异步编程:.NET4.X 数据并行

任务并行库 (TPL) 是 .NET Framework 4的 System.Threading 和 System.Threading.Tasks 命名空间中的一组公共类型和 API。TPL的目的在于简化向应用程序中添加并行性和并发性的过程,从而提高开发人员的工作效率。TPL会动态地按比例调节并发程度,以便最有…

idea全局搜索搜不全的BUG

搜不全真是坑坏我了,修改业务后,差点就卷铺盖走人了… 修改配置 打开help -> Find Action 输入registry后搜索(点击框内任意一行后,直接输入就是搜索) page.size 将100的值改大,一步到位100000

【转】1.6异步编程:IAsyncResult异步编程模型 (APM)

传送门:异步编程系列目录…… 大部分开发人员,在开发多线程应用程序时,都是使用ThreadPool的QueueUserWorkItem方法来发起一次简单的异步操作。然而,这个技术存在许多限制。最大的问题是没有一个内建的机制让你知道操作在什么时候…

Spark worker内存不足导致任务失败,报错Likely due to containers exceeding thresholds, or network issues

报错: Lost executor 33 on xx.xx.xx.152: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages. 原因: 由于spark某节点可用内存不足导致整个任务失败,在执行…

【转】1.7异步编程:基于事件的异步编程模式(EAP)

传送门:异步编程系列目录…… 上一篇,我给大家介绍了“.NET1.0 IAsyncResult异步编程模型(APM)”,通过Begin*** 开启操作并返回IAsyncResult对象,使用 End*** 方法来结束操作,通过回调方法来做异步操作后其它事项。然…

【转】1.8异步编程:.NET 4.5 基于任务的异步编程模型(TAP)

传送门:异步编程系列目录…… 最近我为大家陆续介绍了“IAsyncResult异步编程模型 (APM)”和“基于事件的异步编程模式(EAP)”两种异步编程模型。在.NET4.0 中Microsoft又为我们引入了新的异步编程模型“基于任务的异步编程模型(TAP)”,并且推荐我们在开…

Qt: 找不到Qt5Widgets.lib

在静态编译的时候,提示错误: error: dependent ‘D:\IDE\Qt\5.4.2-mingw32-rel-static\5.4.2-mingw32-rel-static\lib\Qt5Widgets.lib 去目录下看了下,全部是libxxxxx.a文件,是linux的库文件。但是之前编译是正常的,这…

python3读写excel文件_python3 循环读取excel文件并写入json操作

文件内容:excel内容:代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data1 xlrd.open_workbook(filename) # 读取第一个工作表 table data1.sheets()[0] # 统计行数 n_rows table.nrows data …

Qt:error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800

Visual Studio 2013生成Qt项目时报错。网上搜说是更改平台工具集,试了没用。退一步说我就是需要使用vs2013,改成其他的会不符合项目需求。于是打开了项目文件.sln,如下: 才发现目标工程的Qt版本是5.7.0,vs2013里面设置…

JAVA程序绑定到指定的CPU核上

由于服务器上某几个核被C程序绑定了&#xff0c;我们的java程序有的线程会使用到&#xff0c;导致C程序丢包异常&#xff0c;所以需要将JAVA程序绑定到指定的CPU核上 1.命令介绍 1.taskset命令 taskset -c <cpu核编号> <pid> #可以指定进程绑定到哪个cpu核上2.t…

【转】URN_URI_URL详解

URI&#xff0c;Uniform Resource Identifier&#xff0c;统一资源标识符。 URN&#xff0c;Uniform Resource Name&#xff0c;统一资源命名 URL&#xff0c;Uniform Resource Location&#xff0c;统一资源定位符。 URI 简单来理解就是标识/定义了一个资源&#xff0c;而 URL…