温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
在Kudu配置的WAL和Data路径与其他服务(如NameNode、DataNode等)共用一块磁盘的情况下(可能会产生磁盘空间不足或者IO争用),需要将WAL和Data的目录迁移至新的磁盘上。本文主要讲述如何通过Cloudera Manager来完成Kudu Master和Tablet的WAL和Data目录迁移。
内容概述
1.环境说明
2.Tablet Server角色操作
3.Kudu Master 角色操作
4.迁移验证
测试环境
1.CM和CDH版本为5.10.2
前置条件
1.CM和CDH集群正常
2.Kudu1.2服务器正常
3.新的数据盘已格式化并挂载
2.环境说明
这里由于Fayson的磁盘有限,所以将Kudu Master和Tablet配置的WAL和Data的路径分别修改为:
Kudu服务的配置情况
角色分布
磁盘配置
迁移前my_first_table数据
3.Tablet Server角色操作
1.停止4台TS中的一个角色实例
2.删除刚才停止的TS实例
3.进入到Kudu Master的控制台,并查看Tablet Server的状态,等待至少5分钟(Time Since Heartbeat),直到这个被删除的TS进入Dead Table Servers列表中
4.在master节点上执行如下命令,直到所有under replicas的tablets都被复制到其他TS
kuducluster ksckip-172-31-21-45.ap-southeast-1.compute.internal
标注部分为Kudu Master服务的hostname,直到显示如下日志则表示数据迁移成功
注意:这里Kudu数据默认为3副本,如果Tablet节点少于3个,执行上面的命令时会一直显示如下异常:所以Fayson这里使用4个Tablet节点,如果少于Tablet节点少于3个时迁移可能导致数据丢失。
5.然后,登录到这台被下线的TS服务器,找到之前kudu的wal和data目录,将之删除
删除WAL和Data目录
6.然后回到Kudu服务-实例-添加角色实例,把刚才删除的服务器添加为新的TS
7.使用默认的磁盘配置配置该新的TS,直至角色实例添加完成。完成后千万别启动该新的TS
8.进入角色组,在TS组中添加新的组
9.并把新加的TS移动到这个组
10.然后打开这个新的TS实例,点配置,修改WAL的路径为新的路径
11.然后启动该TS
12.TS启动完成
13.Master中查看TS状态正常加入了Cluster
14.查看服务上新加入tablet节点的WAL和Data目录
注意:以上为单节点操作,使用相同的方法,修改其他TS,直至所有TS修改完成。
4.Master角色操作
1.停止Master角色
2.在所有master节点上,查看WAL的路径及owner,权限等
3.执行如下命令,拷贝wal路径到新的磁盘
[ec2-user@ip-172-31-21-45 kudu_master]$ sudo mv fsdatadir/ fsdatadir1
[ec2-user@ip-172-31-21-45 kudu_master]$ sudo mv fswaldir/ fswaldir1
(注意:如果拷贝过去之后,owner及组改变,请执行chown -R kudu:kudu *进行修改)
4.在CM中修改Master的WAL路径配置,保存
5.重启Master服务
至此为止Master节点的WAL和Data目录已迁移完成。
5.迁移验证
登录Hue使用Impala查询Kudu表,验证数据是否有缺失:
在逐个删除Kudu Tablet服务并删除WAL和Data目录后,重新加入集群并未造成Kudu表数据丢失。
如果通过Cloudera Manager直接修改Master和Tablet的WAL和Data目录会导致表数据丢失,使用命令检查数据完整性报如下错误:
[ec2-user@ip-172-31-21-45kudu_master]$kudu cluster ksck ip-172-31-21-45.ap-southeast-1.compute.internal
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
您可能还想看
安装
安全
数据科学
其他
领取专属 10元无门槛券
私享最新 技术干货