弹性 MapReduce 软件配置

这篇说说腾讯云EMR集群的软件配置与访问外部集群功能。新建集群时可通过JSON文件自定义HDFS、YARN等组件参数,也可在购买时或购买后配置访问外部HDFS集群以读取数据。 自定义软件配置:通过JSON文件配置组件参数,支持导出存量集群配置快速新建集群。 访问外部集群:支持购买时或购买后配置,仅兼容高可用且未开启Kerberos的外部集群。

相关产品
弹性 MapReduce 产品页,含版本规格、价格与购买入口。

一、功能说明

软件配置支持你创建集群时自定义 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 版本名,为组件版本,该版本必须与 EMR 产品版本中对应的组件版本一致。

·properties 中填写需要自行配置的参数。

·如需修改 capacity-scheduler.xml、fair-scheduler.xml 中配置参数,properties 中的属性 key 需指定为 content,value 为整个文件的内容。

如果你需要调整存量集群的组件配置,你可以进行 配置下发。

三、访问外部集群

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

四、购买时配置

EMR 支持新建集群时,配置访问外部集群,只需在 购买页 的软件配置处输入符合要求的 json 文件进行配置即可。下面以假设条件为例进行说明:

假设条件
假设需要访问外部集群的 nameservice 为 HDFS8088,其访问方式为:

<property> <name>dfs.ha.namenodes.HDFS8088</name> <value>nn1,nn2</value></property><property> <name>dfs.namenode.http-address.HDFS8088.nn1</name> <value>172.21.16.11:4008</value></property><property> <name>dfs.namenode.https-address.HDFS8088.nn1</name> <value>172.21.16.11:4009</value></property><property> <name>dfs.namenode.rpc-address.HDFS8088.nn1</name> <value>172.21.16.11:4007</value></property><property> <name>dfs.namenode.http-address.HDFS8088.nn2</name> <value>172.21.16.40:4008</value></property><property> <name>dfs.namenode.https-address.HDFS8088.nn2</name> <value>172.21.16.40:4009</value></property><property> <name>dfs.namenode.rpc-address.HDFS8088.nn2</name> <value>172.21.16.40:4007</value></property>

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


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

[ { "serviceName": "HDFS", "classification": "hdfs-site.xml", "serviceVersion": "2.7.3", "properties": { "newNameServiceName": "newEmrCluster", "dfs.ha.namenodes.HDFS8088": "nn1,nn2", "dfs.namenode.http-address.HDFS8088.nn1": "172.21.16.11:4008", "dfs.namenode.https-address.HDFS8088.nn1": "172.21.16.11:4009", "dfs.namenode.rpc-address.HDFS8088.nn1": "172.21.16.11:4007", "dfs.namenode.http-address.HDFS8088.nn2": "172.21.16.40:4008", "dfs.namenode.https-address.HDFS8088.nn2": "172.21.16.40:4009", "dfs.namenode.rpc-address.HDFS8088.nn2": "172.21.16.40:4007" } }]

五、配置参数说明:

·serviceName 组件名,必须为“HDFS”。

·classification 文件名,必须为“hdfs-site.xml”。

·serviceVersion 版本名,为组件版本,该版本必须与 EMR 产品版本中对应的组件版本一致。

·properties 中填写的内容与假设条件一致。

·newNameServiceName(选填)表示当前新建集群 nameservice。如为空,则由系统生产;如非空,只能由字符串 + 数字 + 中划线组成。

注意:1. 导入支持范围: 地址、路径、用户名、密码类配置导入。

注意:2. 访问的外部集群只支持高可用集群。

注意:3. 访问的外部集群只支持未开启 kerberos 的集群。

六、购买后配置

EMR 在集群创建后,支持通过 EMR 的 配置下发 功能来访问外部集群。

假设条件如下:
假设本集群 nameservice 为 HDFS80238(如果是非高可用集群,一般是 masterIp:rpcport,例如172.21.0.11:4007)。
需要访问外部集群的 nameservice 为 HDFS8088,其访问方式为:

<property> <name>dfs.ha.namenodes.HDFS8088</name> <value>nn1,nn2</value></property><property> <name>dfs.namenode.http-address.HDFS8088.nn1</name> <value>172.21.16.11:4008</value></property><property> <name>dfs.namenode.https-address.HDFS8088.nn1</name> <value>172.21.16.11:4009</value></property><property> <name>dfs.namenode.rpc-address.HDFS8088.nn1</name> <value>172.21.16.11:4007</value></property><property> <name>dfs.namenode.http-address.HDFS8088.nn2</name> <value>172.21.16.40:4008</value></property><property> <name>dfs.namenode.https-address.HDFS8088.nn2</name> <value>172.21.16.40:4009</value></property><property> <name>dfs.namenode.rpc-address.HDFS8088.nn2</name> <value>172.21.16.40:4007</value><property>

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

1. 进入 配置下发 页面,选择 hdfs 组件的hdfs-site.xml文件。

2. 修改配置项 dfs.nameservices 为HDFS80238,HDFS8088。

3. 增加配置项及值

配置项 配置值
dfs.ha.namenodes.HDFS8088 nn1,nn2
fs.namenode.http-address.HDFS8088.nn1 172.21.16.11:4008
dfs.namenode.https-address.HDFS8088.nn1 172.21.16.11:4009
dfs.namenode.rpc-address.HDFS8088.nn1 172.21.16.11:4007
fs.namenode.http-address.HDFS8088.nn2 172.21.16.40:4008
dfs.namenode.https-address.HDFS8088.nn2 172.21.16.40:4009
dfs.namenode.rpc-address.HDFS8088.nn2 172.21.16.40:4007
dfs.client.failover.proxy.provider.HDFS8088 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.internal.nameservices HDFS80238

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

4. 下发配置,使用 配置下发 功能下发配置。

更多相关配置详情及原理,请参考 社区文档。

赞 (0)
上一篇 4天前
下一篇 4天前