这是我通过intellij写的。我计划最终编写更大的spark scala文件。
无论如何,我将它上传到我制作的AWS集群上。 "master"
行第11行是"master("local")"
。我遇到了这个错误
第二张图是AWS未成功运行时返回的错误。我将第11行更改为"yarn"
而不是local
(请参阅第一张图片了解其当前状态)
它仍然返回相同的错误。我手动上传时放入以下标志
--steps Type=CUSTOM_JAR,Name="SimpleApp"
它在两周前发挥作用。我的朋友几乎和我完全一样。我不知道为什么它不起作用。
我正在寻找简短的解释和答案。看起来我需要更多关于火花如何工作的知识。
答案 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();
如果您仍想使用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群集的正确链接。