大数据高可用系列--kudu高可用应急方案

二龙2年前技术文章1381

1 设置机架感知

1.1 前置说明

    1.9版本后的kudu已经支持机架感知(cdh6之后的版本中的kudu已支持),由于kudu的每个Tablet一般是三副本,一个leader两个flower,
且随机分布在不通数据节点;要想实现完全的跨机房高可用,则需要三个机房(对应三个机架),若2个机房的话,挂掉一个机房后,若有2个副本
(不论是两个flower或者一个flower一个leader)此tablet都无法自动回复三副本;当然只有一个副本的时候也可以通过命令来恢复
(不过若剩下的副本非leader,则有一定的数据丢失风险,flower未完全同步leader数据的情况下)

1.2 调整机架

根据实际情况,数据节点机架与机房保持一致即可(一个机房一个机架)

001.png

1.3 kudu rebalancer

进入cm页面 kudu服务,点击Run Kudu Rebalancer Tool进行自动均衡

002.png

均衡后观察Tablet的副本分布,发现已经均衡分布

003.png

2 高可用恢复

若数据已经分布在三个机房的机架,挂掉一个机房的多台主机,自动做个rebalancer即可,若为2个机房,停掉2台会涉及tablet挂掉2个副本的情况,
此时无法选主,无法rebalancer自动恢复,此时需要手动修复

2.1 获取异常tablet

sudo -u kudu kudu cluster ksck cdh1,cdh2,cdh3
获取异常的Tablet id,以及对应RUNNING状态的节点及其ID

004.png

2.2 修复Tablet

sudo -u kudu kudu remote_replica unsafe_change_config <tserver_address> <tablet_id> <peer uuids>
* tserver_address:可用副本所在的tserver(cdh2:7050)
* tablet_id:非健康的tablet
* peer uuids:可用副本所在的tserver的uuid
  
举例:
sudo -u kudu kudu remote_replica unsafe_change_config cdh2:7050 7fef9bf5de2b4cad93f88c94689dfb68 
b58a7ccb60b84623a3614b61b26f10ec

此命令无法修复leader已经挂掉(且挂掉了半数)的tablet

005.png

2.3 批量修复Tablet

如果有问题的tablet非常多,可以参考如下命令:
$ kudu cluster ksck localhost|grep -e '^Tablet '|awk '{print $2}'|xargs -i echo "sudo -u kudu kudu remote_replica 
unsafe_change_config cdh2:7050 {} <cdh2-uuid>"

上面命令可批量获取异常的tablet id并生成批量、修复命令

3 集群监控检查

修复工作完成后,执行如下命令,发现无异常tablet,及修复完成
sudo -u kudu kudu cluster ksck cdh1,cdh2,cdh3

此时可以观察任务运行是否恢复正常


相关文章

大数据监控系列(一)——Prometheus+Grafana监控概述

大数据监控系列(一)——Prometheus+Grafana监控概述

1 概述这是介绍Prometheushe和Grafana主要是为了监控大数据产品,数栈平台也是使用Prometheushe+Grafana作为底层大数据组件的监控,并且均有配置模板,导入即在Grafa...

深度解读|云掣《云运维服务白皮书》全方位解析!

深度解读|云掣《云运维服务白皮书》全方位解析!

如今全球各行各业纷纷进行数字化变革,为适应数字经济环境下企业生存发展和市场变化的需要,企业选择进行主动的、系统性、整体性的数字化转型升级。大数据、云计算、人工智能、区块链等新一代信息通信技术为企业的数...

CDH实操--集成 freeipa

CDH实操--集成 freeipa

1 概述环境准备: 1)安装cdh6.2.1 2)安装FreeIPA,server和client(在所有cdh节点)2 集成2.1 krb5.conf修改注释:default_ccache_nam...

EMR-flinksql运行失败问题

EMR-flinksql运行失败问题

运行flinksqlsql-client.sh报错:[root@emr1 bin]# ./sql-client.shSLF4J: Class path contains multiple SLF4J...

CDP实操--Ranger开启ldap认证

CDP实操--Ranger开启ldap认证

集群中已经部署了ldap主主模式,并且使用haproxy进行负载均衡,keepalive提供了虚拟ip。页面配置:Ranger进行同步用户:验证:使用ldap用户登录页面:FAQ:1、admin超级管...

trino容器对接hudi(五)

trino容器对接hudi(五)

前提:本文是基于已经部署了trino容器的基础上进行的。冒烟测试是在trino对接ldap后并且ranger已经对接了metastore权限后,并且spark组件已经对接hudi,并且成功创建hudi...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。