Ambari 用户配置迁移

设置 HDInsight 5.x 后,必须从 HDInsight 4.x 群集更新用户定义的配置。 Ambari 目前不提供用于导出和导入配置的功能。 为了克服此限制,我们创建了一个脚本,可让你轻松下载配置并跨群集进行比较。 但是,此过程涉及几个手动步骤,例如将配置上传到存储目录、下载配置,然后进行比较。

脚本详细信息

  • 此步骤包含两个 Python 脚本。
    • 用于从 Ambari 下载本地群集服务配置的脚本。
    • 用于比较服务配置文件并生成差异的脚本。
  • 下载了所有服务配置,但某些服务和属性被排除在比较过程之外。 这些排除的服务和属性如下所示:
    • 排除的属性
    dfs.namenode.shared.edits.dir','hadoop.registry.zk.quorum','ha.zookeeper.quorum','hive.llap.zk.sm.connectionString','hive.cluster.delegation.token.store.zookeeper.connectString','hive.zookeeper.quorum','hive.metastore.uris','yarn.resourcemanager.hostname','hadoop.registry.zk.quorum','yarn.resourcemanager.hostname','yarn.node-labels.fs-store.root','javax.jdo.option.ConnectionURL','javax.jdo.option.ConnectionUserName','hive_database_name','hive_existing_mssql_server_database','yarn.log.server.url','yarn.timeline-service.sqldb-store.connection-username','yarn.timeline-service.sqldb-store.connection-url','fs.defaultFS', 'address'
    
    • 排除的服务:
      AMBARI_METRICSWEBHCAT

Workflow

若要执行迁移过程,请执行以下操作:

  1. 在 HDInsight 4.x 群集上运行脚本,从 Ambari 获取当前服务配置。 输出保存在执行脚本的本地 VM 上。
  2. 将输出文件上传到公共/通用存储位置,因为它需要在 HDInsight 5.x 群集上下载。
  3. 在 HDInsight 5.x 群集上执行脚本,以从 Ambari 检索当前服务配置。 将输出保存到本地驱动器上。
  4. 保存输出。
  5. 将 HDInsight 4.x 群集配置从存储帐户下载到 HDInsight 5.x 群集。
  6. 在 HDInsight 5.x 群集上运行脚本,其中存在 HDInsight 4.x 和 HDInsight 5.x 配置。

执行

在 HDInsight 4 群集上(旧群集)

  1. 使用 ssh 登录到头节点并运行以下命令。

    mkdir hdinsights_ambari_utils
    cd hdinsights_ambari_utils
    
  2. 运行 wget https://hdiconfigactions2.blob.core.chinacloudapi.cn/hdi-sre-workspace/hdinsights_upgrade_ambari_utils/ambari_export_cluster_configs.py 以下载 Python 脚本。

    显示 wget 命令的屏幕截图。

  3. 运行 python ambari_export_cluster_configs.py。 确保在单引号内指定用户名和密码。

    显示 run-python-script 的屏幕截图。

  4. 执行 ls -ltr 以检查配置文件。

    显示脚本输出的屏幕截图。

  5. 你可以看到一个包含群集名称“Plutos.out”的输出文件。

  6. 将文件上传到存储容器。

在 HDInsight 5.x 群集上(新群集)

  1. 通过 ssh 连接到头节点。

    mkdir hdinsights_ambari_utils
    cd hdinsights_ambari_util
    

    显示 wget 输出的屏幕截图。

  2. 运行 wget https://hdiconfigactions2.blob.core.chinacloudapi.cn/hdi-sre-workspace/hdinsights_upgrade_ambari_utils/ambari_export_cluster_configs.py 以下载 Python 脚本。

    显示 python 脚本输出的屏幕截图。

  3. 执行脚本 python ambari_export_cluster_configs.py。 确保在单引号内指定用户名和密码

  4. 检查配置文件 。

    显示 Ambari python 脚本的屏幕截图。

  5. 你可以看到一个包含群集名称“Sugar.out”的输出文件。

  6. 下载旧的群集 Sugar.out 文件。

    显示 wget 命令输出的屏幕截图。

    显示 python 结果的屏幕截图。

  7. 运行 wget https://hdiconfigactions2.blob.core.chinacloudapi.cn/hdi-sre-workspace/hdinsights_upgrade_ambari_utils/compare_ambari_cluster_configs.py 以下载 Python 脚本。

  8. 运行 compare_ambari_cluster_configs.py 脚本。

  9. 运行

    sshuser@hn0-sugar:~/hdinsights_ambari_utils$ python,
    compare_ambari_cluster_configs.py plutos out sugar.out
    

    显示 python 比较命令的屏幕截图。

  10. 你可以在输出中看到差异。 显示 Python 代码示例的屏幕截图。

  11. 使用命令“ls -ltr”。

  12. 此外,这两个群集配置都存储在此处,你可以将它们用作将来参考。 显示输出文件列表的屏幕截图。