Hadoop EMR引导操作何时运行
我正在创建一个AWS集群,我有一个引导操作来更改spark-defaults.conf 服务器不断被终止 无法读取/etc/spark/conf/spark-defaults.conf:没有这样的文件或 目录 虽然如果我跳过这个,并在服务器上检查文件是否存在。所以我认为事情的顺序是不正确的。我使用EMR 4.5提供的Spark 1.6.1,因此默认情况下应该安装它 有什么线索吗Hadoop EMR引导操作何时运行,hadoop,amazon-web-services,apache-spark,pyspark,Hadoop,Amazon Web Services,Apache Spark,Pyspark,我正在创建一个AWS集群,我有一个引导操作来更改spark-defaults.conf 服务器不断被终止 无法读取/etc/spark/conf/spark-defaults.conf:没有这样的文件或 目录 虽然如果我跳过这个,并在服务器上检查文件是否存在。所以我认为事情的顺序是不正确的。我使用EMR 4.5提供的Spark 1.6.1,因此默认情况下应该安装它 有什么线索吗 谢谢 您不应该在引导操作中更改Spark配置。相反,您应该在启动集群时需要添加的特殊json文件中指定对spark d
谢谢 您不应该在引导操作中更改Spark配置。相反,您应该在启动集群时需要添加的特殊
json
文件中指定对spark defaults
所做的任何更改。如果使用cli
启动,该命令应如下所示:
aws --profile MY_PROFILE emr create-cluster \
--release-label emr-4.6.0 \
--applications Name=Spark Name=Ganglia Name=Zeppelin-Sandbox \
--name "Name of my cluster" \
--configurations file:///path/to/my/emr-configuration.json \
...
--bootstrap-actions ....
--step ...
然后在emr configuration.json
文件中,将更改设置为spark defaults
。例如:
[
{
"Classification": "capacity-scheduler",
"Properties": {
"yarn.scheduler.capacity.resource-calculator": "org.apache.hadoop.yarn.util.resource.DominantResourceCalculator"
}
},
{
"Classification": "spark",
"Properties": {
"maximizeResourceAllocation": "true"
}
},
{
"Classification": "spark-defaults",
"Properties": {
"spark.dynamicAllocation.enabled": "true",
"spark.executor.cores":"7"
}
}
]
实现此目标的最佳方法是在CloudFormation模板中使用步骤定义,例如。。。as步骤将特别在主节点上运行,该节点保存spark-default.conf文件。不幸的是,EMR JSON配置不支持所有spark配置选项。如果您需要更改spark.driver.extraClassPath或spark.executor.extraClassPath,JSON不允许您这样做。如果不使用引导操作,您将如何更改这些选项?@Drahkar我不知道不能通过配置文件设置spark.xx.extraClassPath,但我假设您仍然可以将它们指定为步骤的选项,如
--steps Name=MyJob,Type=spark,Args=[--master,warn-client,--conf,spark.driver.extraClassPath=/extra/class/path/…]
??