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/ ...
随机推荐
- 结合实体框架(代码优先)、工作单元测试、Web API、ASP. net等,以存储库设计模式开发示例项目。NET MVC 5和引导
介绍 这篇文章将帮助你理解在库模式.实体框架.Web API.SQL Server 2012.ASP中的工作单元测试的帮助下设计一个项目.净MVC应用程序.我们正在开发一个图书实体和作者专用的样例图书 ...
- 多测师浅谈 学员实现价值就是我们的幸福_高级讲师肖sir
学员实现价值就是我们的幸福 作为一名资深的IT高级讲师,在传统的行业IT薪资基本都是过万,作为一名IT培训教师,培养出在不同领域的测试,并且接触各种各样的产品,目前市场流行的比如银行业务系统,语音类系 ...
- python 字典使用——增删改查
创建字典 dict= {key1 : value1, key2 : value2 } key : value 为键值对 增: dict[key] = value 删: del dict[key] 改: ...
- 【树形结构】51nod 1766 树上的最远点对
题目内容 \(n\)个点被\(n−1\)条边连接成了一颗树,边有权值\(w_i\).有\(q\)个询问,给出\([a,b]\)和\([c,d]\)两个区间,表示点的标号请你求出两个区间内各选一点之间的 ...
- 【Luogu】P3369 【模板】普通平衡树(树状数组)
P3369 [模板]普通平衡树(树状数组) 一.树状数组 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构. ...
- centos8平台使用iotop监控磁盘io
一,iotop的作用: iotop是监视磁盘I/O使用状况的top类工具, 可以针对进程和线程统计io的使用情况 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblog ...
- matlab cvx工具箱解决线性优化问题
题目来源:数学建模算法与应用第二版(司守奎)第一章习题1.4 题目说明 作者在答案中已经说明,求解上述线性规划模型时,尽量用Lingo软件,如果使用Matlab软件求解,需要做变量替换,把二维决策变量 ...
- Rest Framework设计规范
Rest Framework Rest Framework是前后端分离中用到的一种规范,它与框架本身无关,是一种软件架构风格,全称为Representational State Transfer. R ...
- 【原创】linux实时操作系统xenomai x86平台基准测试(benchmark)
一.前言 benchmark 即基准测试.通常操作系统主要服务于应用程序,其运行也是需要一定cpu资源的,一般来说操作系统提供服务一定要快,否则会影响应用程序的运行效率,尤其是实时操作系统.所以本文针 ...
- pyqt5按钮退出程序
import sys from PyQt5.QtWidgets import QHBoxLayout,QMainWindow,QApplication,QPushButton,QWidget clas ...