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节点。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。