如何迁移Kudu1.2的WAL和Data目录

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 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

kudu cluster ksck ip-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-45 kudu_master]$ kudu cluster ksck ip-172-31-21-45.ap-southeast-1.compute.internal 

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2017-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEE

Intellij IDEA 使用教程

正所谓工欲善其事,必先利其器,身为码农的我们,拥有得心应手的编辑器就好比如鱼得水,在万行代码中取bug首级就如观鱼赏花!IDEA就堪称是当世之神兵,自诩为最智能...

12220
来自专栏Web项目聚集地

什么是跨域?解决方案有哪些?

同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同...

65820
来自专栏IMWeb前端团队

RosinVSJSConsole

Rosin是一个Fiddler插件,协助开发者进行移动端页面开发调试。 特性 可配置的页面匹配规则 拦截console 日志内容的存储,展示,过滤 脚本运行错误...

24070
来自专栏云计算教程系列

如何从Django应用程序发送Web推送通知

网络不断发展,现在可以实现以前只能在本机移动设备上使用的功能。JavaScript 服务工作者的引入为Web提供了新的功能,可以执行后台同步,脱机缓存和发送推送...

65560
来自专栏Hadoop实操

Azkaban的使用及Command作业创建

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

1.2K100
来自专栏Java帮帮-微信公众号-技术文章全总结

使用Crontab定时执行Spark任务【面试+工作】

第一个“#”表示是这一行是注释 第二个“!”表示这一行不是普通注释,而是解释器路径的声明行 后面的“/usr/bin/perl”是perl解释器的安装路径,...

49820
来自专栏CSDN技术头条

由浅入深学习JavaScript Debug技巧

我常常看到不少开发者不懂如何Debug JavaScript代码,因此决定写一篇博客为初学者介绍如何Debug。我希望这篇文章可以提供一些有用的信息。我尝试在本...

19290
来自专栏Seebug漏洞平台

Bypass unsafe-inline mode CSP

[+] Author: evi1m0 [+] Team: n0tr00t security team [+] From: http://www.n0tr0...

34540
来自专栏前端儿

趁webpack5还没出,先升级成webpack4吧

webpack4升级完全指南 webpack4 changelog React 16 加载优化性能

85030
来自专栏ionic3+

【技巧】ionic3优雅解决启动前、后黑白屏问题

启动前黑白屏问题,仅存在于android,是android应用的通病,ionic表示这锅它不背。 具体操作时,当我们点击桌面图标启动APP时,有时会闪一下黑色...

28660

扫码关注云+社区

领取腾讯云代金券