需求:把elasticsearch5.5集群的数据迁移到elasticsearch6.5的集群上

1.安装sshfs

在elasticsearch集群上的节点都要安装sshfs服务,过程如下:

1.1 下载安装包
wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/fuse-sshfs-2.5-1.el7.rf.x86_64.rpm
yumdownloader fuse-libs
yumdownloader fuse

注:

如果只想通过yum下载软件的安装包,但是不需要进行安装的话,可以使用 yumdownloader 命令。
yumdownloader 命令在软件包 yum-utils 里面。

先安装 yum-utils:
yum install yum-utils -y

通过以上的命令可以得到如下安装包:

怎么向es中批量导入数据 es数据导入另一个es_重启

1.2 安装

命令如下:

rpm -Uvh fuse-libs-2.9.2-6.el7.x86_64.rpm
rpm -Uvh fuse-2.9.2-6.el7.x86_64.rpm
rpm -ivh fuse-sshfs-2.5-1.el7.rf.x86_64.rpm

2. 在一个elasticsearch的操作(例如es5.5)

2.1 前期准备
# 设置共享目录
# 选一个节点创建备份目录/data/backup,确保目录大小足够备份,这里选择了idr03
mkdir -p /data/backup
chown -R es:es /data/
chmod -R 777 /data
# 在所有Elasticsearch5.5节点创建挂载目录
mkdir /mnt/backup
# 将所有挂载目录的所属用户及用户组修改为Elasticsearch用户
chown -R es:es /mnt/backup
chmod -R 777 /mnt/backup
# 各个Elasticsearch5.5节点上执行如下命令,设置共享目录
sshfs node100:/data/backup/ /mnt/backup/ -o allow_other
2.2 elasticsearch修改配置并重启
# 修改Elasticsearch5.5各个节点的配置文件
vim elasticsearch.yml
添加如下内容:
path.repo: "/mnt/backup"
# 重启Elasticsearch-5.5服务
./elasticsearch –d
2.3 注册仓库和创建快照
2.3.1 注册仓库
# 注册仓库my_backup,返回{"acknowledged":true}则注册成功
curl -H "Content-Type: application/json" -X PUT http://node100:9200/_snapshot/my_backup -d '{"type": "fs","settings": {"location": "/mnt/backup/my_backup","compress": true}}'
# 查看仓库信息
curl -XGET node100:9200/_snapshot/my_backup?pretty
2.3.2 创建快照
# 创建快照snapshot_1
curl -XPUT node100:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true?pretty
wait_for_completion 参数指定创建snapshot的请求是否等待快照创建完成再返回,不指定则后台运行。 默认情况下,集群中所有打开和启动的索引是自动创建快照的。可以通过在快照请求里列出需要创建快照的索引。
2、查看快照
curl -XGET node100:9200/_snapshot/my_backup/snapshot_1?pretty

3.在要迁到的elasticsearch集群的操作(es6.5)

3.1 前期准备
# 在所有Elasticsearch6.5节点创建挂载目录
mkdir /mnt/backup
# 将所有挂载目录的所属用户及用户组修改为Elasticsearch用户
chown -R es:es /mnt/backup
chmod -R 777 /mnt/backup
# 各个Elasticsearch6.5节点上执行如下命令,设置共享目录
sshfs node100:/data/backup/ /mnt/backup/ -o allow_other
注:挂载的目录要与es5.5一样
3.2 elasticsearch修改配置并重启
# 修改Elasticsearch6.5各个节点的配置文件
vim elasticsearch.yml
添加如下内容:
path.repo: "/mnt/backup"
# 重启Elasticsearch-6.5服务
./elasticsearch –d
3.3 注册仓库和恢复快照
3.3.1 注册仓库
# 注册仓库my_backup,返回{"acknowledged":true}则注册成功
curl -H "Content-Type: application/json" -X PUT http://node130:9200/_snapshot/my_backup -d '{"type": "fs","settings": {"location": "/mnt/backup/my_backup","compress": true}}'
# 查看仓库信息
curl -XGET node130:9200/_snapshot/my_backup?pretty
3.3.2 恢复快照
# 恢复快照
curl -XPOST node130:9200/_snapshot/my_backup/snapshot_1/_restore
# 查看快照状态
curl -XGET node130:9200/_snapshot/my_backup/snapshot_1/_status
# 完成后即可查看到从Elasticsearch-5.5迁移过来的数据。
curl node130:9200/_cat/indices
4.补充(只为一个索引创建快照,删除快照,注销仓库)
只为一个索引创建快照:
curl -XPUT node100:9200/_snapshot/my_backups/snapshot_1?wait_for_completion=true -d '{"indices":"test_index"}'
删除快照的命令:
curl -X DELETE "node100:9200/_snapshot/my_backup/snapshot_1"
注销仓库的命令:
curl -X DELETE "node100:9200/_snapshot/my_backup"
如果两个elasticseach的集群都有权限
在创建和恢复快照的curl 命令后加上 参数 -u 用户名:密码