apache-spark - 在 amazon emr 上运行时要指定什么作为 spark master

标签 apache-spark amazon-emr

Spark有native support by EMR .使用 EMR Web 界面创建新集群时,可以添加自定义步骤,在集群启动时执行 Spark 应用程序,基本上是集群启动后的自动 spark-submit。

我一直想知道在启动EMR集群并通过指定的EMR步骤提交jar文件时,如何在应用程序中为SparkConf指定主节点?

不可能事先知道集群主节点的 IP,如果我手动启动集群,然后在调用 spark-submit 之前使用这些信息构建到我的应用程序中,就会出现这种情况。

代码片段:

SparkConf conf = new SparkConf().setAppName("myApp").setMaster("spark:\\???:7077");
JavaSparkContext sparkContext = new JavaSparkContext(conf);

请注意,我询问的是“集群”执行模式,因此驱动程序也在集群上运行。

最佳答案

简短的回答:不要。

更长的答案:像“spark://...”这样的主 URL 用于 Spark Standalone,但 EMR 在 YARN 上使用 Spark,所以主 URL 应该只是“yarn”。这已在 spark-defaults.conf 中为您配置,因此当您运行 spark-submit 时,您甚至不必包含“--master ...”。

但是,由于您询问的是集群执行模式(实际上,它称为“部署模式”),您可以指定“--master yarn-cluster”(已弃用)或“--deploy-mode cluster”(首选)。这将使 Spark 驱动程序以随机​​集群模式运行,而不是在 EMR 主节点上运行。

关于apache-spark - 在 amazon emr 上运行时要指定什么作为 spark master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061857/

相关文章:

r - 使用 sparklyr 高效地将 data.table 写入 Spark

hadoop - 在 Amazon EMR 上运行 Pig 字数统计脚本时出现错误

amazon-web-services - 亚马逊 EMR 中 Hue 中存储的文件在哪里

scala - 列出文件 scala emr hdfs(缺少 csv 文件)

hadoop - Spark:设置conf.yarn.jar时出现未知/不受支持的参数错误

apache-spark - Apache Spark 和 Nifi 集成

scala - scala 中的模拟 Spark 列函数

apache-spark - 使用 Spark 缓慢写入 HDFS

在 Amazon EMR 上运行 mahout 项目相似性作业时发生 Java 堆空间错误

java - AWS EMR 上的 avro 错误