如何在Ambari中更新主机名


# 如何在Ambari中更新主机名

因为公司测试环境所有主机的主机名的变化,需要修改整套环境的所有主机的主机名。

# 前置工作

  • 所有主机的本身的主机名已修改
  • 备份Ambari数据库
  • 禁用Kerberos
    • 在Ambari页面中,访问Admin > Kerberos 并且点击 Disable Kerberos

# 步骤

  1. Ambari Web > Background Operations 中,停止所有的组件和任务。
  2. 停止所有的服务
  3. 去每台机器上停用 ambari-serverambari-agents
ambari-server stop
ambari-agent stop
1
2
  1. 创建一个***.json**文件,比如 host_names_changes.json
{
  "cluster1" : {
      "c6400.ambari.apache.org" : "c6410.ambari.apache.org",
      "c6401.ambari.apache.org" : "c6411.ambari.apache.org",
     ....
  }
}
1
2
3
4
5
6
7

文件格式是K/V格式,"current_host_name" : "new_host_name"

  1. 在ambari-server上所在的主机上执行类似以下命令:
ambari-server update-host-names host_names_changes.json
1
  1. 上述这个命令只会修改存储在数据库中的主机名信息,但并不会修改/etc/ambari-agent/conf/ambari-agent.ini文件。因为ambari-agent.ini包含了ambari-server的地址,因此得手动修改一下。
  2. 启动所有主机上的ambari-serverambari-agent
ambari-server start
ambari-agent start
1
2
  1. 此外还有一个问题,如果你使用了NameNode HA,那么还得:

    a. 先启动ZooKeeper服务

    b. 在某台NameNode主机上执行:

    hdfs zkfc -formatZK -force
    
    1
  2. Ambari页面上启动所有的服务

# 参考