完美避坑记一次Elasticsearch集群迁移架构实战

前言

Elastic自身设计了集群分片的负载平衡机制,当有新数据节点加入集群或者离开集群,集群会自动平衡分片的负载分布。

需求背景

公司原有大数据平台基于公有云构建,由于种种原因,现在需要迁移到自建机房,Elasticsearch集群承担了大数据平台主要的对外查询需求,也有部分实时计算需求基于Elasticsearch实现,所以需要在不影响应用系统体验的情况下做到平滑的迁移。本次分享讲述我们如何进行平滑迁移以及如何避坑。

需要迁移的主要有两部分:

  • 对外提供的服务API,这些API是与Elastic集群绑定的,属于业务场景定制化开发;

  • Elasticsearch集群迁移,数据需要迁移,节点也需要全部迁移。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图示:公有云集群+自建机房集群示意图,业务系统查询图

迁移策略

大数据平台的Elastic集群直接对外提供实时查询服务,任何影响Elastic集群平稳的操作都应该避免,那我们的集群迁移策略也侧重平稳,时间上可以宽松一些,迁移主要的工作有以下几个:

  • 关闭集群自动平衡;

  • 启动自有机房新节点与公有云自建集群组成一个集群;

  • 人工迁移集群数据到新节点;

  • 外围访问切换到新节点;

  • 关闭公有云节点;

  • 开启集群自动平衡。

迁移步骤

迁移过程中有很多步骤操作,是有严格先后顺序的,如果出错则会造成集群动荡,影响应用体验。此时Elastic的版本是6.5.X,当时最新的版本,迁移完成之后也全部升级到6.8.X。

1、原有集群架构

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图示:原有集群架构,数据节点与管理节点分离

1)Elasticsearch节点有很多角色(管理节点、数据节点,协调节点),默认单节点常用角色全部开启。所以在早期搭建Elastic集群时,就按照角色分离的职责将管理节点与数据节点分离部署,这也是后面集群迁移能够顺利进行的重要前提。多数初学者在刚刚接触Elastic投入生产环境时会犯一个错误,节点角色不分离,当数据节点的资源消耗过度会导致集群管理节点响应变慢,从而影响整体集群响应。

#管理节点角色设置 node.master: true node.data: false #数据节点角色设置 node.master: false node.data: true

2)Elastic对外提供服务时中间会增加一层负载代理,如定制服务API与实时计算应用访问Elastic集群都需要走代理。

3)Hadoop集群与Elastic集群互相访问是基于官方提供的ES-Hadoop驱动包,由于实现原理的限制,不能做代理,所以是直接访问,都是离线任务交互。

2、配置新集群

1)因为是迁移到新集群节点,原有节点最后都需要关闭,新集群节点同样也需要管理节点与数据节点分离,新旧节点需要平滑迁移,所以新旧节点在启动之后就需要在同一集群中,新节点Hosts同时指向新管理节点与旧管理节点 ,关键

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值