配置应用程序 - Amazon EMR

配置应用程序

您可以提供配置对象来覆盖应用程序的默认配置。您也可以使用简写语法提供配置,或者引用 JSON 文件中的配置对象。配置对象包含分类、属性和可选的嵌套配置。属性对应于您想要更改的应用程序设置。您可以在一个 JSON 对象中为多个应用程序指定多个分类。

警告

Amazon EMR Describe 和 List API 操作以明文形式发出自定义和可配置的设置,用作 Amazon EMR 作业流程的一部分。要在这些设置中提供密码等敏感信息,请参阅将在 AWS Secrets Manager 中存储敏感配置数据

可用的配置分类因 Amazon EMR 发行版而异。有关特定发行版中所支持配置分类的列表,请参阅 关于 Amazon EMR 发行版下有关该发行版的页面。

以下是一组配置的示例 JSON 文件。

[ { "Classification": "core-site", "Properties": { "hadoop.security.groups.cache.secs": "250" } }, { "Classification": "mapred-site", "Properties": { "mapred.tasktracker.map.tasks.maximum": "2", "mapreduce.map.sort.spill.percent": "0.90", "mapreduce.tasktracker.reduce.tasks.maximum": "5" } } ]

配置分类通常可以映射到应用程序特定的配置文件。例如,hive-site 分类映射到 Hive 的 hive-site.xml 配置文件中的设置。此情况的一个例外是不再支持的引导操作 configure-daemons,它用于设置 --namenode-heap-size 等环境参数。与此类似的选项已归入 hadoop-envyarn-env 分类,并具有自己的嵌套导出分类。如果任何分类以 env 结尾,请使用导出子分类。

另一个例外是 s3get,它用于将客户 EncryptionMaterialsProvider 对象放置在集群中的每个节点上来进行客户端加密。为了实现此目的,已向 emrfs-site 分类添加一个选项。

以下是一个 hadoop-env 分类示例。

[ { "Classification": "hadoop-env", "Properties": { }, "Configurations": [ { "Classification": "export", "Properties": { "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" }, "Configurations": [ ] } ] } ]

以下是一个 yarn-env 分类示例。

[ { "Classification": "yarn-env", "Properties": { }, "Configurations": [ { "Classification": "export", "Properties": { "YARN_RESOURCEMANAGER_OPTS": "-Xdebug -Xrunjdwp:transport=dt_socket" }, "Configurations": [ ] } ] } ]

以下设置不属于配置文件,但由 Amazon EMR 用来代表您配置多个设置。

由 Amazon EMR 辅助设置
应用程序 发行版标注分类 有效属性 何时使用
Spark spark maximizeResourceAllocation 配置执行程序以利用每个节点的最大资源。