功能说明
软件配置支持您创建集群时自定义 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文件。
- 进入 配置更新 页面,选择 hdfs 组件的hdfs-site.xml文件。
- 修改配置项 dfs.nameservices 为具体nameservice 名。
- 增加配置项及值
配置项 配置值 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。
导出软件配置
功能介绍
通过 TBDS Manager 管理平台,可以导出存量集群的软件配置参数,便于软件配置的二次开发、备份、迁移和恢复;导出软件配置参数可作为新集群的预设配置,从而快速新建一个熟悉的集群。
- 导出维度:默认集群维度,支持配置组维度或节点维度选择(单选)。
- 导出模式:默认“全部配置”,支持选择只导出自定义和修改过的配置(二选一);节点维度无导出模式选择,默认全部配置。
- 导出格式:集群维度和配置组维度仅支持JSON格式;节点维度仅支持原文件格式。
说明:
- 若新集群想要复用老集群配置,建议导出老集群有修改的配置文件,⽆需导出全部配置文件。
- 节点维度仅支持原文件格式下载(客户端配置),可通过客户端执行管理操作、运行业务或进行二次开发。
操作步骤
- 登录 TBDS Manager 管理平台进入集群列表页。
- 在待导出集群的管理栏选择更多 > 导出软件配置。
- 勾选需要导出的文件,选择导出配置即可下载得到软件配置文件。

