必须将主URL设置为您的配置(AWS上的Spark scala)

时间:2016-10-02 16:39:16

标签: scala amazon-web-services apache-spark

This is what I ran (in scala spark)

这是我通过intellij写的。我计划最终编写更大的spark scala文件。

无论如何,我将它上传到我制作的AWS集群上。 "master"行第11行是"master("local")"。我遇到了这个错误

第二张图是AWS未成功运行时返回的错误。我将第11行更改为"yarn"而不是local(请参阅第一张图片了解其当前状态)

它仍然返回相同的错误。我手动上传时放入以下标志  --steps Type=CUSTOM_JAR,Name="SimpleApp"

它在两周前发挥作用。我的朋友几乎和我完全一样。我不知道为什么它不起作用。

我正在寻找简短的解释和答案。看起来我需要更多关于火花如何工作的知识。

我正在与亚马逊EMR合作。 the error AWS gave

2 个答案:

答案 0 :(得分:1)

我认为第9行你在spark 1.6.x和旧版本中使用“旧方式”方法创建SparkContext - 你需要在默认配置文件中设置主 (通常是地点conf/spark-defaults.conf)或将其传递给 spark-submit (在new SparkConf()中需要)...

在第10行,您正在使用SparkSesion创建“spark”上下文,这是spark 2.0.0中的方法。所以在我看来你的问题是行数。 9我想你应该删除它并使用SparkSesion或为SparkContext设置需要的配置如果你需要sc

您可以使用sparkSession.sparkContext();

访问sparkContext

如果您仍想使用SparkConf,则需要以编程方式定义master:

val sparkConf = new SparkConf()
                    .setAppName("spark-application-name")
                    .setMaster("local[4]")
                    .set("spark.executor.memory","512m");

conf/spark-defaults.conf

中的声明式方法
spark.master            local[4]
spark.executor.memory   512m

或仅在运行时:

./bin/spark-submit --name "spark-application-name" --master local[4] --executor-memory 512m your-spark-job.jar

答案 1 :(得分:1)

尝试使用以下代码:

val spark = SparkSession.builder().master("spark://ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com:xxxx").appName("example").getOrCreate()

您需要提供与aws群集的正确链接。