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]