Hadoop EMR引导操作何时运行

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

我正在创建一个AWS集群,我有一个引导操作来更改spark-defaults.conf

服务器不断被终止

无法读取/etc/spark/conf/spark-defaults.conf:没有这样的文件或 目录

虽然如果我跳过这个,并在服务器上检查文件是否存在。所以我认为事情的顺序是不正确的。我使用EMR 4.5提供的Spark 1.6.1,因此默认情况下应该安装它

有什么线索吗


谢谢

您不应该在引导操作中更改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/…]
??