配置应用程序
您可以提供配置对象来覆盖应用程序的默认配置。您也可以使用简写语法提供配置,或者引用 JSON 文件中的配置对象。配置对象包含分类、属性和可选的嵌套配置。属性对应于您想要更改的应用程序设置。您可以在一个 JSON 对象中为多个应用程序指定多个分类。
警告
Amazon EMR Describe 和 List API 操作以明文形式发出自定义和可配置的设置,用作 Amazon EMR 作业流程的一部分。要在这些设置中提供密码等敏感信息,请参阅将在 Amazon 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-env
和 yarn-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 用来代表您配置多个设置。
应用程序 | 发行版标注分类 | 有效属性 | 何时使用 |
---|---|---|---|
Spark | spark |
maximizeResourceAllocation |
配置执行程序以利用每个节点的最大资源。 |