zoukankan      html  css  js  c++  java
  • namenode服务迁移

      交代一下背景:

      1. 由于机器过保,需要进行机器的置换,所以就有了这么个事情;

      2. namenode是普通的ha模式,没有配置federation;

      3. 需要尽最大的可能不影响生产环境中Hadoop集群的服务

      4. 我们的集群都是通过hostname进行的配置,不是通过具体的ip进行的配置。推荐使用hostname进行配置

     

      下面开始记录一下本次的工作: 这里不写出具体的ip和hostname,假设原来的namenode服务在ip为a,hostname为hosta和ip为b,hostname为hostb的两台机器上上,其中a机器过保, 新机器的ip为c,需要将a上面的namenode服务迁移到c上面;

      步骤如下:

      1. 停止a机器上的namenode和zkfc服务,此时集群还是可以正常工作的

      2. 停止了a机器上的namenode服务后, 此时a机器就不在集群范围了。接着修改集群中每台机器的hosts文件,将原来的 a和hosta的映射去掉,改成c和hosta的映射。修改完后,同步一份hosts文件到c机器。

      3. 配置b机器c机器的免密码登录,因为到时候namenode的ha切要用到

      4. 拷贝a机器上的Hadoop安装目录到c机器对应的目录下,根据配置文件创建对应的目录和修改目录的权限,并且修改环境变量,弄成和a上面的一样即可。

      5. 同步namenode的fsimage,在c机器执行: hdfs namenode -bootstrapStandby

      6. 启动c机器上的namenode等服务(还有zkfc等服务)

      7. 重启b机器上的zkfc服务

      以上,namenode服务迁移完毕,不会影响生产环境的正常工作。无需停止其它节点的服务.

     

      下面对几个注意事项进行说明:

      1. 在操作的过程中要注意目录的权限,操作集群一定要使用对应的账号。这里都是统一用的hadoop账号

      2. 需要重启另外一台机器上的zkfc服务, 因为修改了fencing的私钥,不重启zkfc会导致namenode的ha不能正常切换

      3. 这里进行namenode的服务迁移却没有停集群的原因是我们的集群是用hostname进行配置的,即使ip变了,只要hostname没变是不会造成影响的,这也是推荐使用hostname进行集群配置的原因, 因为像这种迁移的操作会方便很多。如果是配置的ip,上面的操作就行不通了,必须停止集群。

      4. 关于zkfc是否需要重新格式化的问题:答案是不需要的,同样是因为通过hostname进行配置的,所以不需要。因为底层都是通过hostname去找对应的机器,它能够自动的去找到对应的机器。

     

  • 相关阅读:
    XML案例
    4.6Java数组的遍历
    4.3Java多态(polymorphism)
    XML文档的标准
    4.6Java数组的定义
    4.6Java数组初始化的方式
    XML介绍
    4.6Java对象转型(casting)
    HelloWorld之MyBatis
    Hibernate查询方法比较
  • 原文地址:https://www.cnblogs.com/wuxilc/p/9255833.html
Copyright © 2011-2022 走看看