0531-6.1-如何手动迁移JournalNode
- 2019 年 11 月 28 日
- 筆記
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
Fayson在上一篇文章《0530-6.1-如何只是迁移NameNode或JournalNode》,主要介绍了通过Cloudera Manager来界面化向导式迁移JournalNode,本文Fayson主要会实操演示如何手动迁移JournalNode角色。
- 测试环境
1.CDH6.1
2.Redhat7.4
3.HDFS已经启用HA
2
环境准备
1.启用HDFS HA成功后再次查看HDFS服务的“实例”页面,可以看到一共4个节点在一个HDFS HA的集群中的不同角色划分。

2.接下来本文,会开始演示将ip-172-31-6-83上的JournalNode角色迁移到ip-172-31-9-113节点。首先我们停止ip-172-31-6-83节点上的JournalNode服务,并且删除,模拟故障。



3.这是CM提示警告,JournalNode必须为奇数个,最少三个。

3
手动迁移JournalNode
1.首先我们停止HDFS服务。

停止成功

2.因为我们要将ip-172-31-6-83上的JournalNode角色迁移到ip-172-31-9-113节点,我们从另外2个正常的JN节点中的一台ip-172-31-4-105拷贝JN的edits数据目录到ip-172-31-9-113节点。
[root@ip-172-31-4-105 dfs]# cd /dfs [root@ip-172-31-4-105 dfs]# tar czvf jn.tar.gz jn/ [root@ip-172-31-4-105 dfs]# scp jn.tar.gz root@ip-172-31-9-113:/dfs


注意:/dfs目录是Fayson的集群所配置的JN的edits的目录。
我们登录到ip-172-31-9-113上进行检查传过来的JN数据。
[root@ip-172-31-9-113 dfs]# cd /dfs [root@ip-172-31-9-113 dfs]# ll total 192 drwx------ 3 hdfs hadoop 21 Feb 1 14:09 dn -rw-r--r-- 1 root root 194699 Feb 1 14:14 jn.tar.gz [root@ip-172-31-9-113 dfs]# tar xvzf jn.tar.gz

注意:解压后的jn目录的用户属组与权限必须正确,可以与之前的正常JN节点ip-172-31-4-105中相同的目录进行比较。
3.回到HDFS服务的“实例”页面,添加JN角色给新的节点ip-172-31-4-105

点击“添加角色实例”

在JournalNode栏目中选择ip-172-31-4-105

点击“继续”

CM的警告报错也消失了。
4.重启HDFS服务


启动成功

5.进入HDFS服务页面,点击“操作”->“滚动编辑”,该步骤主要是为了强制同步3个JournalNode的状态,毕竟ip-172-31-4-105是新加入的。


同步成功

6.HDFS功能简单验证

4
总结
1.如果你想将JournalNode角色从一个节点迁移到另外一个节点,可以使用Cloudera Manager界面向导式执行,也可以使用本文手动迁移的方式,不过优先建议采用CM界面化的标准方式。
2.当然本文也适用于如果你一个JournalNode所在节点损坏的情况,如果你需要恢复其中一个JournalNode节点,也可以采用本文的方法。
3.该功能在执行过程中会需要重启整个HDFS服务,请提前做好停机规划。
4.注意在从一个健康的节点拷贝JN的edits数据目录到新的节点时,一定要注意目录的用户属组和权限正确。
5.在迁移完毕,HDFS服务正式起来后,需要执行JournalNode的“滚动编辑”操作,以强制同步3个JournalNode节点的状态,毕竟有新加入的JN节点。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。