kudu集群:kudu_master、kudu_tserver服务及数据的迁移(根据官网总结)
是不是都需要一个声明,来一个:
声明:
本文只是总结本人本地模拟环境测试,并没有经过严格的线上测试。请自己在本地严格测试之后慎重使用在生产环境!
kudu_master、kudu_tserver服务迁移时候会涉及数据的迁移,概括如下:
1、kudu_master部署机器
172.16.100.1 | kudu_master1 | Leader |
172.16.100.2 | kudu_master2 | Follower |
172.16.100.3 | kudu_master3 | Follower |
2、确认kudu集群健康状态,通过ksck命令查看
./kudu cluster ksck kudu_master1,kudu_master2,kudu_master3
注释:
kudu_master1,kudu_master2,kudu_master3:kudu_master服务所在机器的host
Version Summary
Version | Servers
-----------------+-------------------------
1.10.0-cdh6.3.1 | all 6 server(s) checked
Tablet Summary
Summary by table
Name | RF | Status | Total Tablets | Healthy | Recovering | Under-replicated | Unavailable
--------------------------+----+---------+---------------+---------+------------+------------------+-------------
impala::default.dd1 | 3 | HEALTHY | 1 | 1 | 0 | 0 | 0
impala::default.dd2 | 3 | HEALTHY | 1 | 1 | 0 | 0 | 0
impala::hxoffice_pri.dd3 | 3 | HEALTHY | 1 | 1 | 0 | 0 | 0
Tablet Replica Count Summary
Statistic | Replica Count
----------------+---------------
Minimum | 3
First Quartile | 3
Median | 3
Third Quartile | 3
Maximum | 3
Total Count Summary
| Total Count
----------------+-------------
Masters | 3
Tablet Servers | 3
Tables | 3
Tablets | 3
Replicas | 9
3、获取kudu集群master机器的UUID
./kudu local_replica cmeta print_replica_uuids --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 00000000000000000000000000000000 2>/dev/null
命令执行结果:
0ad919b7c68049a3bcf46abc029da8f6 909d4c97d0b948c6902e40f6968a3b8b 739298ec62504f898a71d4f6b92f908e
注释:
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:该参数是kudu集群部署时候你指定的数据和日志路径,具体可在master.gflagfile文件查看
00000000000000000000000000000000 :固定参数
4、在kudu的WEBUI界面确认自己需要迁移的master节点的UUID
5、迁移的机器的UUID
909d4c97d0b948c6902e40f6968a3b8b
6、在新增的kudu_master机器,把--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 这两个路径下的master目录干掉,没什么用
7、重新格式化--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 这个新增机器的数据目录
./kudu fs format --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master --uuid=909d4c97d0b948c6902e40f6968a3b8b
注释:
--uuid:需要迁移的kudu_master节点机器的UUID,第5步,你已经确认你需要迁移的机器了
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:这两个路径配置,上面已经说过了是数据和日志相关的路径配置,新增机器的配置维持原样
8、现在从正常的、存活的kudu_master节点复制一份完成数据到这个新增的机器上
./kudu local_replica copy_from_remote --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 00000000000000000000000000000000 hxb06:7051
注释:
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:数据和日志相关配置目录,不要随意修改,按照你自己之前的配置来
00000000000000000000000000000000:固定参数
hxb06:7051:正常的、存活的kudu_master节点,之前准备迁移的那一台kudu_master机器已经停掉,这一步执行最好选择是kudu_master服务的LEADER角色
9、拷贝完之后,修改配置文件master.gflagfile、tserver.gflagfile
--master_addresses=172.16.100.1:7051,172.16.100.2:7051,172.16.100.4:7051(这一台是新增上来的机器)
10、每一台kudu_master节点执行,刷新当前kudu_master集群配置
./kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 00000000000000000000000000000000 909d4c97d0b948c6902e40f6968a3b8b:172.16.100.179:7051 0ad919b7c68049a3bcf46abc029da8f6:172.16.100.249:7051 739298ec62504f898a71d4f6b92f908e:172.16.101.230:7051
注释:
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:老生常谈,这两个路径是你数据和日志相关路径
00000000000000000000000000000000:固定参数
909d4c97d0b948c6902e40f6968a3b8b kudu_master机器的UUID(这个UUID,你去WEBUI界面上看,现在活着的kudu_master的UUID是什么,千万不要写错,kudu_master迁移完全依赖机器的UUID)
11、kudu_tserver服务和数据迁移
经查阅官网资料,kudu官网提供kudu cluster rebalance工具和自主恢复机制两种方式进行kudu_tserver节点的永久移除,考虑到该工具使用牵扯到gcc编译和版本要求,再者考虑到数据量并不是很大,故采用kudu集群自主迁移恢复机制进行kudu_tserver数据迁移,本地测试超过两次,均未造成数据丢失,操作比较简单
注释:
如果你想试一下balance工具,参考官网地址:
https://kudu.apache.org/docs/administration.html#tablet_server_decommissioning
https://kudu.apache.org/docs/administration.html#ksck
12、我使用的是kudu集群自主迁移恢复机制
1. 停掉一台需要迁移的kudu_tserver节点,保证活着的kudu_tserver至少三台,因为我的副本数设置的是3,仅仅如此 2.根据自主恢复机制,停机超5分钟后,该机器副本会自动迁移至其他活着的kudu_tserver节点 3. 重启kudu集群各个kudu_master、kudu_tserver服务 4. 使用ksck命令检查集群健康状态是否正常,检查kudu集群WEBUI界面是否已经移除掉迁移的kudu_tserver节点
至此,kudu_master、kudu_tserver服务及数据迁移完成,SOEASY!!!
kudu集群:kudu_master、kudu_tserver服务及数据的迁移(根据官网总结)的更多相关文章
- 基于Kubernetes集群部署skyDNS服务
目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...
- docker swarm英文文档学习-8-在集群中部署服务
Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运 ...
- .net core结合Consul集群&Docker实现服务治理
实战中的asp.net core结合Consul集群&Docker实现服务治理 https://www.cnblogs.com/guolianyu/p/9614050.html 0.目录 整体 ...
- 集群/分布式/微服务/SOA 转
https://www.cnblogs.com/Java3y/p/9479410.html 二.集群/分布式/微服务/SOA是什么? 像我这种技术小白,看到这些词(集群/分布式/微服务/SOA)的时候 ...
- web集群和分布式服务以及消息补偿机制几种方案
一.为什么要集群? 1.JavaEE项目,如果部署在一台Tomcat上,所有的请求,都由这一台服务器处理,存在很大风险: A:并发处理能力有限(一般单台服务器处理的并发量为250左右,超过250,可能 ...
- 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?
作者 | 柳密 阿里巴巴阿里云智能 ** 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 ...
- Prometheus 通过 consul 分布式集群实现自动服务发现
转载自:https://cloud.tencent.com/developer/article/1611091 1.Consul 介绍 Consul 是基于 GO 语言开发的开源工具,主要面向分布式, ...
- rancher导入k8s集群后添加监控无数据
1.日志报错 rancher导入k8s集群后添加监控无数据,rancher日志报错: k8s.io/kube-state-metrics/pkg/collectors/builder.go:: Fai ...
- Kubernetes 部署集群内部DNS服务
Kubernetes 部署集群内部DNS服务 部署官网:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/ ...
随机推荐
- ls: 显示目下的内容及相关属性信息
ls: 显示目下的内容及相关属性信息 [功能说明] ls 命令可以理解为英文单词 "list" 的缩写,其功能是列出目录的内容及其内容属性信息(list directory con ...
- Java-JDK动态代理(AOP)使用及实现原理分析
Java-JDK动态代理(AOP)使用及实现原理分析 第一章:代理的介绍 介绍:我们需要掌握的程度 动态代理(理解) 基于反射机制 掌握的程度: 1.什么是动态代理? 2.动态代理能够做什么? 后面我 ...
- Fiddler抓包工具 请求图标为一个锁的图标的设置
第一步,Fiddler抓包的数据 前面的都是一个锁的图标,的设置方法, 然后 点击打开 按此设置图一 在图二, 图三. 其他默认就好
- 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir
讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...
- Convert to Ones CodeForces(超水题)
题目大意:给你几个数,这些数里面只有0或1,你有两种操作:1.把一段区域内的所有数前后交换位置.2.把一段区域内所有数取反.(区域可大可小,可以是所有数也 ...
- zabbix:以主动模式添加一台受监控主机 (zabbix5.0)
一,zabbix被动模式和主动模式的区别? zabbix-agent默认的模式是被动模式, zabbix agent被动地接受zabbix server发来的指令, 获取数据后再返回给zabbix s ...
- C++ 设置软件激活不息屏
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);
- C# 获取页面get过来的数据
/// <summary> /// 获取get过来的数据 /// </summary> /// <param name="page"></ ...
- Html+Ajax+Webservice 实现文件跨域上传
1. 界面HTML <p >上传文件: <input id="zfiles" type="file" name="file" ...
- 对于app监测root权限或者强制升级
只做分享学习 以下方法对于大多数Root检测的App (不限于仅银行类App),均适用. 另,"主用户 + Island用户" 情况下: 如果App仅安装在 Island下,当绕不 ...