[mw_shl_code=bash,true][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[/mw_shl_code]
注意:/dfs目录是Fayson的集群所配置的JN的edits的目录。
我们登录到ip-172-31-9-113上进行检查传过来的JN数据。
[mw_shl_code=bash,true][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[/mw_shl_code]
注意:解压后的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节点。
来源: weixin
作者: Fayson Hadoop实操
原文链接:0531-6.1-如何手动迁移JournalNode