方案目标
将现有NameNode迁移到新的节点上,期间保证集群对外提供服务.
方案背景
随着集群数据量和规模的扩增,需要将NameNode迁移到性能更优的机器上,以此提高NameNode的请求处理效率.
传统方案: 冷迁移
具体步骤
传统方案的做法比较简单,主要步骤如下:
- 1.停止集群服务,关闭NameNode,DataNode.
- 2.将NameNode元数据拷贝到目标新的机器上.
- 3.在新机器上安装好hadoop客户端,并更新集群中所有的hdfs- site配置,将新的NameNode ip指向新的节点.
- 4.重新启动集群.
传统方案的不足
传统方案在操作上是比较容易执行的,但是它唯一的不足之处在于需要集群对外停止服务.如果集群使用方众多,这样的做法显然不是一个最佳的方案.简单用一句话来形容这种做法:简单了自己,麻烦了他人.所以更好的做法应该是将麻烦留给自己,尽可能对外界不造成影响.
NameNode热迁移操作
当前节点:旧nn1:active; 旧nn2:standby; 新nn1; 新nn2
1.关闭 旧nn2的 namenode服务.
cd $HADOOP_HOME/sbin/; ./hadoop-daemon.sh stop namenode
2.将旧nn2上面的元数据目录