软件配置

最近更新时间: 2026-03-13 09:03:00

功能说明

软件配置支持您创建集群时自定义 hdfs、yarn、hive 等组件的配置。

自定义软件配置

软件配置支持用户创建集群时自定义 hdfs、yarn、hive 等组件的配置。Hadoop、Hive 等软件含有大量配置,通过软件配置功能您可以在新建集群的过程中自主配置组件参数。配置过程需要您按要求提供相应的 JSON 文件,文件可以由您自定义,也可以将存量集群的软件配置参数导出,然后快速新建一个集群。导出软件配置参数,详情请参见 导出软件配置
JSON文件示例及说明:

[
    {
        "serviceName": "HDFS",
        "classification": "hdfs-site.xml",
        "serviceVersion": "2.8.4",
        "properties": {
            "dfs.blocksize": "67108864",
            "dfs.client.slow.io.warning.threshold.ms": "900000",
            "output.replace-datanode-on-failure": "false"
        }
    },
    {
        "serviceName": "YARN",
        "classification": "yarn-site.xml",
        "serviceVersion": "2.8.4",
        "properties": {
            "yarn.app.mapreduce.am.staging-dir": "/emr/hadoop-yarn/staging",
            "yarn.log-aggregation.retain-check-interval-seconds": "604800",
            "yarn.scheduler.minimum-allocation-vcores": "1"
        }
    },
    {
        "serviceName": "YARN",
        "classification": "capacity-scheduler.xml",
        "serviceVersion": "2.8.4",
        "properties": {
            "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?xml-stylesheet type=\"text/xsl\" href=\"configuration.xsl\"?>\n<configuration><property>\n        <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>\n        <value>0.8</value>\n</property>\n<property>\n        <name>yarn.scheduler.capacity.maximum-applications</name>\n        <value>1000</value>\n</property>\n<property>\n        <name>yarn.scheduler.capacity.root.default.capacity</name>\n        <value>100</value>\n</property>\n<property>\n        <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>\n        <value>100</value>\n</property>\n<property>\n        <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>\n        <value>1</value>\n</property>\n<property>\n        <name>yarn.scheduler.capacity.root.queues</name>\n        <value>default</value>\n</property>\n</configuration>"
        }
    }
]

配置参数说明:
serviceName 组件名,必须大写。
classification 文件名,必须使用全称,包含后缀。
serviceVersion 版本名,为组件版本,该版本必须与 TBDS 产品版本中对应的组件版本一致。
properties 中填写需要自行配置的参数。
如需修改 capacity-scheduler.xml、fair-scheduler.xml 中配置参数,properties 中的属性key需指定为 content,value 为整个文件的内容。
如果您需要调整存量集群的组件配置,您可以进行 配置更新

访问外部集群

配置外部集群 HDFS 的访问地址信息后,可以读取外部集群的数据。

部署时配置

TBDS Manager支持新建集群时,配置访问外部集群,只需在软件配置处输入符合要求的 JSON 文件进行配置即可。下面以假设条件为例进行说明:
假设条件:假设需要访问外部集群的 nameservice 为 ${nameservice_name},其访问方式为:

<property>
    <name>dfs.ha.namenodes.${nameservice_name}</name>
    <value>nn1,nn2</value>
</property>
<property>
    <name>dfs.namenode.http-address.${nameservice_name}.nn1</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.https-address.${nameservice_name}.nn1</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.${nameservice_name}.nn1</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.http-address.${nameservice_name}.nn2</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.https-address.${nameservice_name}.nn2</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.${nameservice_name}.nn2</name>
    <value>${ip:port}</value>
</property>

如需在新建集群中就可访问外部集群,进入软件配置页后,打开高级设置。

JSON文件及说明:以假设条件为例,框内应该填入 JSON 文件内容(json 内容要求同自定义软件配置)。

[
    {
        "serviceName": "HDFS",
        "classification": "hdfs-site.xml",
        "serviceVersion": "2.7.3",
        "properties": {
            "newNameServiceName": "newEmrCluster",
            "dfs.ha.namenodes.${nameservice_name}": "nn1,nn2",
            "dfs.namenode.http-address.${nameservice_name}.nn1": "${ip:port}",
            "dfs.namenode.https-address.${nameservice_name}.nn1": "${ip:port}",
            "dfs.namenode.rpc-address.${nameservice_name}.nn1": "${ip:port}",
            "dfs.namenode.http-address.${nameservice_name}.nn2": "${ip:port}",
            "dfs.namenode.https-address.${nameservice_name}.nn2": "${ip:port}",
            "dfs.namenode.rpc-address.${nameservice_name}.nn2": "${ip:port}"
        }
    }
]

配置参数说明:
serviceName 组件名,必须为“HDFS”。
classification 文件名,必须为“hdfs-site.xml”。
serviceVersion 版本名,为组件版本,该版本必须与 TBDS 产品版本中对应的组件版本一致。
properties 中填写的内容与假设条件一致。
newNameServiceName(选填)表示当前新建集群 nameservice。如为空,则由系统生成;如非空,只能由字符串 + 数字 + 中划线组成。

注意:

访问的外部集群只支持高可用集群。

访问的外部集群只支持未开启 Kerberos 的集群。

部署后配置

在集群创建后,支持通过 配置更新 功能来访问外部集群。
配置项中填写需要访问外部集群的 nameservice 名称和value(如果是非高可用集群,一般是 masterIp:rpcport)。参考配置为:

<property>
    <name>dfs.ha.namenodes.${nameservice_name}</name>
    <value>nn1,nn2</value>
</property>
<property>
    <name>dfs.namenode.http-address.${nameservice_name}.nn1</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.https-address.${nameservice_name}.nn1</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.${nameservice_name}.nn1</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.http-address.${nameservice_name}.nn2</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.https-address.${nameservice_name}.nn2</name>
    <value>${ip:port}</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.${nameservice_name}.nn2</name>
    <value>${ip:port}</value>
<property>

如果这些信息是经典集群中的,可在 配置更新 管理页查看,或者登录到机器查看 /usr/local/service/hadoop/etc/hadoop/hdfs-site.xml文件。

  1. 进入 配置更新 页面,选择 hdfs 组件的hdfs-site.xml文件。
  2. 修改配置项 dfs.nameservices 为具体nameservice 名。
  3. 增加配置项及值
    配置项 配置值
    dfs.ha.namenodes.${nameservice_name}nn1,nn2
    fs.namenode.http-address.${nameservice_name}.nn1${ip:port}
    dfs.namenode.https-address.${nameservice_name}.nn1 ${ip:port}
    dfs.namenode.rpc-address.${nameservice_name}.nn1${ip:port}
    fs.namenode.http-address.${nameservice_name}.nn2${ip:port}
    dfs.namenode.https-address.${nameservice_name}.nn2${ip:port}
    dfs.namenode.rpc-address.${nameservice_name}.nn2${ip:port}
    dfs.client.failover.proxy.provider.${nameservice_name}org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    dfs.internal.nameservices${nameservice_name}

注意:

dfs.internal.nameservice 需要新增配置项,否则扩容集群后可能导致 datanode 上报异常而被 namenode 标记为 dead。

  1. 下发配置,使用 配置更新 功能下发配置。
    更多相关配置详情及原理,请参考 社区文档

导出软件配置

功能介绍

通过 TBDS Manager 管理平台,可以导出存量集群的软件配置参数,便于软件配置的二次开发、备份、迁移和恢复;导出软件配置参数可作为新集群的预设配置,从而快速新建一个熟悉的集群。

  • 导出维度:默认集群维度,支持配置组维度或节点维度选择(单选)。
  • 导出模式:默认“全部配置”,支持选择只导出自定义和修改过的配置(二选一);节点维度无导出模式选择,默认全部配置。
  • 导出格式:集群维度和配置组维度仅支持JSON格式;节点维度仅支持原文件格式。

    说明:

    • 若新集群想要复用老集群配置,建议导出老集群有修改的配置文件,⽆需导出全部配置文件。
    • 节点维度仅支持原文件格式下载(客户端配置),可通过客户端执行管理操作、运行业务或进行二次开发。

操作步骤

  1. 登录 TBDS Manager 管理平台进入集群列表页。
  2. 在待导出集群的管理栏选择更多 > 导出软件配置
  3. 勾选需要导出的文件,选择导出配置即可下载得到软件配置文件。