From 2c7ccdd669e4459c301687e05b372f81212fa0e3 Mon Sep 17 00:00:00 2001 From: David Wang Date: Thu, 18 Jan 2024 12:39:33 +1100 Subject: [PATCH 1/2] HDDS-7558. Translate "Topology awareness" doc into Mandarin Chinese --- .../docs/content/feature/Topology.zh.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 hadoop-hdds/docs/content/feature/Topology.zh.md diff --git a/hadoop-hdds/docs/content/feature/Topology.zh.md b/hadoop-hdds/docs/content/feature/Topology.zh.md new file mode 100644 index 000000000000..fe7d2b39cad4 --- /dev/null +++ b/hadoop-hdds/docs/content/feature/Topology.zh.md @@ -0,0 +1,108 @@ +--- +title: "拓扑感知能力" +weight: 2 +menu: + main: + parent: 特性 +summary: 机架感知配置可以提高读/写性能 +--- + + +Ozone可以使用拓扑相关信息(例如机架位置)来优化读写管道。要获得完全的机架感知集群,Ozone需要三种不同的配置。 + + 1. 拓扑信息应由 Ozone 配置。 + 2. 当Ozone为特定管道/容器选择3个不同的数据节点时,与拓扑相关信息就会被使用.(写入) + 3. 当Ozone读取一个Key时,它应该优先从最近的节点读取。 + + + +## 拓扑层次结构 + +拓扑层次结构可使用 net.topology.node.switch.mapping.impl 配置键进行配置。此配置应定义 org.apache.hadoop.net.CachedDNSToSwitchMapping 的实现。由于这是一个 Hadoop 类,因此该配置与 Hadoop 配置完全相同。 + +### 静态列表 + +静态列表可借助 ```TableMapping``` 进行配置:: + +```XML + + net.topology.node.switch.mapping.impl + org.apache.hadoop.net.TableMapping + + + net.topology.table.file.name + /opt/hadoop/compose/ozone-topology/network-config + +``` + +第二个配置选项应指向一个文本文件。文件格式为两列文本文件,各列之间用空格隔开。第一列是 IP 地址,第二列指定地址映射的机架。如果找不到与群集中主机相对应的条目,则会使用 /default-rack。 + +### 动态列表 + +机架信息可借助外部脚本识别: + + +```XML + + net.topology.node.switch.mapping.impl + org.apache.hadoop.net.ScriptBasedMapping + + + net.topology.script.file.name + /usr/local/bin/rack.sh + +``` + +如果使用外部脚本,则需要在配置文件中使用 net.topology.script.file.name 参数来指定。与 java 类不同,外部拓扑脚本不包含在 Ozone 发行版中,而是由管理员提供。Fork 拓扑脚本时,Ozone 会向 ARGV 发送多个 IP 地址。发送给拓扑脚本的 IP 地址数量由 net.topology.script.number.args 控制,默认为 100。如果将 net.topology.script.number.args 改为 1,则每个提交的 IP 地址都会Fork一个拓扑脚本。 + +## 写入路径 + +封闭容器实现可以通过 `ozone.scm.container.placement.impl` 配置键进行配置。 可用的容器放置策略可在 `org.apache.hdds.scm.container.placement` 包中找到。[包](https://github.com/apache/ozone/tree/master/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms). + +默认情况下, `SCMContainerPlacementRandom` 被用于拓扑感知。但 `SCMContainerPlacementRackAware` 也可用于拓扑感知: + +```XML + + ozone.scm.container.placement.impl + org.apache.hadoop.hdds.scm.container.placement.algorithms.SCMContainerPlacementRackAware + +``` + +这种放置策略符合 HDFS 中使用的算法。在默认的 3 个副本中,两个副本位于同一个机架上,第三个副本位于不同的机架上。 + +这种实现方式适用于"/机架/节点 "这样的网络拓扑结构。如果网络拓扑结构的层数较多,则不建议使用此方法。 + +## 读取路径 + +最后,读取路径也应配置为从最近的 pipeline 读取数据。 + +```XML + + ozone.network.topology.aware.read + true + +``` + +## 参考文献 + + * 关于 `net.topology.node.switch.mapping.impl` 的 Hadoop 文档: https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/RackAwareness.html + * [设计文档] ({{< ref "design/topology.md">}}) \ No newline at end of file From fba0d3f9df07f3f50e6a8a2a85d627b2c40b83fd Mon Sep 17 00:00:00 2001 From: David Wang Date: Fri, 19 Jan 2024 18:40:42 +1100 Subject: [PATCH 2/2] HDDS-7558. Translate "Topology awareness" doc into Mandarin Chinese --- hadoop-hdds/docs/content/feature/Topology.zh.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hadoop-hdds/docs/content/feature/Topology.zh.md b/hadoop-hdds/docs/content/feature/Topology.zh.md index fe7d2b39cad4..a366e3a2473c 100644 --- a/hadoop-hdds/docs/content/feature/Topology.zh.md +++ b/hadoop-hdds/docs/content/feature/Topology.zh.md @@ -26,12 +26,12 @@ summary: 机架感知配置可以提高读/写性能 Ozone可以使用拓扑相关信息(例如机架位置)来优化读写管道。要获得完全的机架感知集群,Ozone需要三种不同的配置。 1. 拓扑信息应由 Ozone 配置。 - 2. 当Ozone为特定管道/容器选择3个不同的数据节点时,与拓扑相关信息就会被使用.(写入) + 2. 当Ozone为特定管道/容器选择3个不同的数据节点时,拓扑相关信息就会被使用.(写入) 3. 当Ozone读取一个Key时,它应该优先从最近的节点读取。 @@ -54,7 +54,7 @@ Ozone 对开放式容器(写)使用 RAFT 复制,对封闭的、不可变 ``` -第二个配置选项应指向一个文本文件。文件格式为两列文本文件,各列之间用空格隔开。第一列是 IP 地址,第二列指定地址映射的机架。如果找不到与群集中主机相对应的条目,则会使用 /default-rack。 +第二个配置选项应指向一个文本文件。文件格式为两列文本文件,各列之间用空格隔开。第一列是 IP 地址,第二列指定地址映射的机架。如果找不到与集群中主机相对应的条目,则会使用 /default-rack。 ### 动态列表 @@ -76,9 +76,9 @@ Ozone 对开放式容器(写)使用 RAFT 复制,对封闭的、不可变 ## 写入路径 -封闭容器实现可以通过 `ozone.scm.container.placement.impl` 配置键进行配置。 可用的容器放置策略可在 `org.apache.hdds.scm.container.placement` 包中找到。[包](https://github.com/apache/ozone/tree/master/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms). +CLOSED容器放置可以通过 `ozone.scm.container.placement.impl` 配置键进行配置。 可用的容器放置策略可在 `org.apache.hdds.scm.container.placement` 包中找到。[包](https://github.com/apache/ozone/tree/master/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/placement/algorithms). -默认情况下, `SCMContainerPlacementRandom` 被用于拓扑感知。但 `SCMContainerPlacementRackAware` 也可用于拓扑感知: +默认情况下, CLOSED容器使用 `SCMContainerPlacementRandom` 放置策略,该策略不支持拓扑感知。为了启用拓扑感知,可配置 `SCMContainerPlacementRackAware` 作为CLOSED容器放置策略: ```XML @@ -105,4 +105,4 @@ Ozone 对开放式容器(写)使用 RAFT 复制,对封闭的、不可变 ## 参考文献 * 关于 `net.topology.node.switch.mapping.impl` 的 Hadoop 文档: https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/RackAwareness.html - * [设计文档] ({{< ref "design/topology.md">}}) \ No newline at end of file + * [设计文档]({{< ref path="design/topology.md" lang="en">}}) \ No newline at end of file