elasticsearch 之数据迁移 - Snapshot

一、Snapshort做数据迁移的优点

优点
  • 1、速度快适合大数据量迁移(2500万数据建立快照需要2-3分钟产出4.5G文件)

二、配置

单节点配置
1、创建快照仓库

在elasticsearch机器上创建仓库目录:

mkdir /repository
# 赋权
chown -R elasticsearch:elasticsearch /repository
2、在elasticsearch.yml文件中加入下面配置:
path.repo: /repository

3、启动elasticsearch后在kibana中执行下面命令:

# my_local_repo 为自定义仓库名称

PUT _snapshot/my_local_repo
{
  "type": "fs",
  "settings": {
    "location": "/repository"
  }
}

集群部署配置

集群部署的elasticsearch可以结合nfs完成,nfs的部署请参考

1、创建快照仓库

nfs服务器配置(可以在elasticsearch的master节点上进行)

vim /etc/exports
/repository-nfs 192.168.4.0/24(rw,sync,fsid=0)

#授予权限
chmod -R 666 repository-nfs

#重载数据
exportfs -rv

nfs客户端配置(elasticsearch的node节点)

mkdir /repository

mount -t nfs 192.168.4.32:/repository-nfs /repository
2、在各个节点中的elasticsearch.yml文件中加入下面配置:
path.repo: /repository

3、重启elasticsearch集群后在kibana中执行下面命令:

# my_local_repo 为自定义仓库名称

PUT _snapshot/my_local_repo
{
  "type": "fs",
  "settings": {
    "location": "/repository"
  }
}

三、创建快照

1、为索引创建快照
# snapshot_1 为快照名称
PUT _snapshot/my_local_repo/snapshot_1
{
  "indices": "index_name", # 多个索引用逗号分隔
  "ignore_unavailable": true,
  "include_global_state": true
}
2、查看快照状态
GET _snapshot/my_local_repo/_all

>>>>>>
{
  "snapshots" : [
    {
      "snapshot" : "snapshot_1",
      "uuid" : "KvRKl6MwRD-cNVpM0PdXsQ",
      "version_id" : 6050499,
      "version" : "6.5.4",
      "indices" : [
        "law_index",
        "case_index",
        "belowins_drug_index",
        "belowins_food_index",
        "callback_medical_index",
        "obj_index",
        "ent_index",
        "callback_drug_index"
      ],
      "include_global_state" : true,
      "state" : "IN_PROGRESS", # IN_PROGRESS 进行中,SUCCESS 完成
      "start_time" : "2020-11-18T03:19:57.826Z",
      "start_time_in_millis" : 1605669597826,
      "end_time" : "1970-01-01T00:00:00.000Z",
      "end_time_in_millis" : 0,
      "duration_in_millis" : -1605669597826,
      "failures" : [ ],
      "shards" : {
        "total" : 0,
        "failed" : 0,
        "successful" : 0
      }
    }
  ]
}

注意:上面创建快照命令不会等待快照初始化完成,而是立即返回,如果想要等待初始化完成后在返回需要加
wait_for_completion=true 但是如果等待时间较长会超时。


(不建议加此参数,可以通过查看快照状态,判断是否完成。)

3、删除快照
DELETE _snapshot/my_local_repo/snapshot_1
4、恢复快照

如果是做数据迁移的话,将仓库地址打包传到目标地址后做快照恢复即可。

POST _snapshot/my_local_repo/snapshot_1/_restore
{
  "indices": "index_name", # 多值情况用逗号分隔
  "ignore_unavailable": true,
  "include_global_state": false
}

注意:要恢复快照的索引需要时关闭状态,或者先删除当前索引(谨慎操作,建议提前建立快照)
POST index_name/_close 或者 DELETE index_name

常见问题
  • 1、集群部署是es读写repository-nfs是的权限问题?

    答:以为es部署不能使用root账号,所以给安装es创建的账号修改权限

    usermod -u 500 es
    groupmod -g 500 es
    

    注意:usermod时需要es用户没有进程在活动,就是说elasticsearch进程需要关闭

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值