如何在不影响hadoop集群正常运行的情况下迁移主控节点[namenode]

目前大部分使用的hadoop集群都是2.x版本的了,这个版本比 hadoop 1.0 添加了namenode 的HA ,解决了namenode单点的问题。但是还是会有紧急情况发生 【比如 两个互为主备的namenode 节点中的某一个节点硬件损坏了】本文描述的过程就是如何把一个datanode节点变成namenode节点在不关掉集群的情况下。【eplacing a name node in an existing HA cluster .[DateNode to NameNode】

  1. DataNode 退役

    • 1.1节点退役 Decommission Datanode

      Decommission Datanode就是把Datanode从HDFS集群中移除掉。
      Datanode是存储实际数据的,因此在Decommission Datanode的时候需要把Datanode上的数据迁移到别的机器上。下线的时候Datanode会有以下操作,1:计算块信息 2:删除块 3:copy块 4:校验块信息

    • 操作步骤如下:

      • 在Namenode上,把需要Decommission的Datanode的机器名加入到dfs.hosts.exclude(该配置项在hdfs-site.xml)所指定文件中,也就是告诉Namenode哪些Datanode要被Decommission。
      • 如果hdfs-site.xml没有找到dfs.hosts.exclude,那么就手动把下面内容加入到hdfs-site.xml中,然后把需要Decommission的机器写到文件/etc/hadoop/conf/dfs.exclude中去。
        <property>
        <name>dfs.hosts.exclude</name>
        <value>/etc/hadoop/conf/dfs.exclude</value>
        </property>

      • exclude 例子: datanode1

      • 启动Decommission:

        hdfs dfsadmin -refreshNodes
      • 刷新后在hfs页面可以看见 Decommission In Progress 的节点
      • 如果加速下线 可以把块的复制个数减少
  2. 停止要迁移的namenode上面的所有进程

    [NameNode,ResourceManager,FailOverControl,JournalNode]等等

  3. scp namenode上的配置信息给datanode *-site.xml 等

  4. scp editlogs/FSimage to datanode
  5. 修改 /etc/hosts 把 datanode hostname 和 namenode hostname对换掉
  6. 在新的namenode节点上启动服务

例如:

hadoop-daemon.sh start namenode
yarn-daemon.sh start resourcemanager
hadoop-daemon.sh start zkfc
yarn rmadmin -getServiceState rm1 # for checking
hdfs haadmin -getServiceState namenode2

journalnode 的迁移

当你想添加或者修改一个journalnode在一个HA 集群中,请参考以下步骤:

  • 配置这个新的journalnode 参照已经存在的journalnode节点
  • 把dfs.journalnode.edits.dir scp到这个新的节点 进行初始化
  • 启动journalnode进程
  • 把配置信息同步给namenodes,更新 dfs.namenode.shared.edits.dir 信息加入新的journalnode节点
  • 重启 standby namenode
  • 当确认standby namenode 重启完成并且没有报错后,重启active namenode

如果是新添加一个journalnode 可以
停止 NameNode, 然后运行命令
hdfs namenode -initializeSharedEdits

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值