This is an automated email from the ASF dual-hosted git repository.

JiaLiangC pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 56fe81a786 [AMBARI-26616] Refresh rack topology mappings upon DataNode 
or NodeManager install (#4139)
56fe81a786 is described below

commit 56fe81a78616b5fc35338bcaf7bfbe51d4e569f1
Author: Anurag Goyal <[email protected]>
AuthorDate: Thu Jul 2 08:02:52 2026 +0530

    [AMBARI-26616] Refresh rack topology mappings upon DataNode or NodeManager 
install (#4139)
    
    * regenerate topology mappings on datanode install
    
    * regenerate topology mappings on nodemanager install
    
    * include datanodes and nodemanagers
    
    * fix indentation
    
    ---------
    
    Co-authored-by: Anurag Goyal <[email protected]>
---
 .../main/resources/stack-hooks/before-START/scripts/params.py  |  1 +
 .../before-START/templates/topology_mappings.data.j2           |  2 +-
 .../3.2.0/services/HDFS/package/scripts/hdfs_namenode.py       | 10 ++++++++++
 .../BIGTOP/3.2.0/services/HDFS/package/scripts/params_linux.py |  7 +++++++
 .../services/HDFS/package}/templates/topology_mappings.data.j2 |  2 +-
 .../BIGTOP/3.2.0/services/YARN/package/scripts/params_linux.py |  9 +++++++++
 .../3.2.0/services/YARN/package/scripts/resourcemanager.py     | 10 ++++++++++
 .../services/YARN/package}/templates/topology_mappings.data.j2 |  2 +-
 8 files changed, 40 insertions(+), 3 deletions(-)

diff --git 
a/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py 
b/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py
index e2769e4e5c..cef46737ba 100644
--- 
a/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py
+++ 
b/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py
@@ -385,6 +385,7 @@ all_hosts = default("/clusterHostInfo/all_hosts", [])
 all_racks = default("/clusterHostInfo/all_racks", [])
 all_ipv4_ips = default("/clusterHostInfo/all_ipv4_ips", [])
 slave_hosts = default("/clusterHostInfo/datanode_hosts", [])
+nm_hosts = default("/clusterHostInfo/nodemanager_hosts", [])
 
 # topology files
 net_topology_script_file_path = "/etc/hadoop/conf/topology_script.py"
diff --git 
a/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
 
b/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
index 15034d6306..1e761534c6 100644
--- 
a/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
+++ 
b/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
@@ -17,7 +17,7 @@
 #}
 [network_topology]
 {% for host in all_hosts %}
-{% if host in slave_hosts %}
+{% if host in slave_hosts or host in nm_hosts %}
 {{host}}={{all_racks[loop.index-1]}}
 {{all_ipv4_ips[loop.index-1]}}={{all_racks[loop.index-1]}}
 {% endif %}
diff --git 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/hdfs_namenode.py
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/hdfs_namenode.py
index 5dc11b4c7e..fb524397e8 100644
--- 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/hdfs_namenode.py
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/hdfs_namenode.py
@@ -570,6 +570,16 @@ def decommission():
     )
     pass
 
+  # regenerate topology_mappings.data
+  File(
+    params.net_topology_mapping_data_file_path,
+    content=Template("topology_mappings.data.j2"),
+    owner=params.hdfs_user,
+    group=params.user_group,
+    mode=0o644,
+    only_if=format("test -d {hadoop_conf_dir}")
+  )
+
   if not params.update_files_only:
     Execute(nn_kinit_cmd, user=hdfs_user)
 
diff --git 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/params_linux.py
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/params_linux.py
index be6e21b44f..a18ad0abdb 100644
--- 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/params_linux.py
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/scripts/params_linux.py
@@ -236,7 +236,14 @@ klist_path_local = get_klist_path(
 kinit_path_local = get_kinit_path(
   default("/configurations/kerberos-env/executable_search_paths", None)
 )
+
+# topology files
+net_topology_mapping_data_file_path = os.path.join(hadoop_conf_dir, 
"topology_mappings.data")
+
 # hosts
+all_hosts = default("/clusterHostInfo/all_hosts", [])
+all_racks = default("/clusterHostInfo/all_racks", [])
+all_ipv4_ips = default("/clusterHostInfo/all_ipv4_ips", [])
 hostname = config["agentLevelParams"]["hostname"]
 rm_host = default("/clusterHostInfo/resourcemanager_hosts", [])
 public_hostname = config["agentLevelParams"]["public_hostname"]
diff --git 
a/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/templates/topology_mappings.data.j2
similarity index 95%
copy from 
ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
copy to 
ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/templates/topology_mappings.data.j2
index 15034d6306..2f682da4e5 100644
--- 
a/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/HDFS/package/templates/topology_mappings.data.j2
@@ -17,7 +17,7 @@
 #}
 [network_topology]
 {% for host in all_hosts %}
-{% if host in slave_hosts %}
+{% if host in slave_hosts or host in nm_host %}
 {{host}}={{all_racks[loop.index-1]}}
 {{all_ipv4_ips[loop.index-1]}}={{all_racks[loop.index-1]}}
 {% endif %}
diff --git 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/params_linux.py
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/params_linux.py
index 709e95ba4f..08ac611b5f 100644
--- 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/params_linux.py
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/params_linux.py
@@ -377,6 +377,15 @@ yarn_job_summary_log = format(
 
 user_group = config["configurations"]["cluster-env"]["user_group"]
 
+# topology files
+net_topology_mapping_data_file_path = os.path.join(hadoop_conf_dir, 
"topology_mappings.data")
+
+# hosts
+all_hosts = default("/clusterHostInfo/all_hosts", [])
+all_racks = default("/clusterHostInfo/all_racks", [])
+all_ipv4_ips = default("/clusterHostInfo/all_ipv4_ips", [])
+slave_hosts = default("/clusterHostInfo/datanode_hosts", [])
+
 # exclude file
 if "all_decommissioned_hosts" in config["commandParams"]:
   exclude_hosts = 
config["commandParams"]["all_decommissioned_hosts"].split(",")
diff --git 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/resourcemanager.py
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/resourcemanager.py
index 6b7ab4b4b3..c17f9ac552 100644
--- 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/resourcemanager.py
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/scripts/resourcemanager.py
@@ -188,6 +188,16 @@ class ResourcemanagerDefault(Resourcemanager):
         group=user_group,
       )
 
+    # regenerate topology_mappings.data
+    File(
+      params.net_topology_mapping_data_file_path,
+      content=Template("topology_mappings.data.j2"),
+      owner=params.hdfs_user,
+      group=params.user_group,
+      mode=0o644,
+      only_if=format("test -d {hadoop_conf_dir}")
+    )
+
     if params.update_files_only == False:
       Execute(
         yarn_refresh_cmd, environment={"PATH": params.execute_path}, 
user=yarn_user
diff --git 
a/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/templates/topology_mappings.data.j2
similarity index 95%
copy from 
ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
copy to 
ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/templates/topology_mappings.data.j2
index 15034d6306..1e761534c6 100644
--- 
a/ambari-server/src/main/resources/stack-hooks/before-START/templates/topology_mappings.data.j2
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/YARN/package/templates/topology_mappings.data.j2
@@ -17,7 +17,7 @@
 #}
 [network_topology]
 {% for host in all_hosts %}
-{% if host in slave_hosts %}
+{% if host in slave_hosts or host in nm_hosts %}
 {{host}}={{all_racks[loop.index-1]}}
 {{all_ipv4_ips[loop.index-1]}}={{all_racks[loop.index-1]}}
 {% endif %}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to