我对这个完全陌生,所以我不太明白它是怎么做的。
我需要在我的机器上运行 spark(使用 ssh 登录)并设置内存 60g 和 6 个内核以供执行。
这是我试过的。
spark-submit --master yarn --deploy-mode cluster --executor-memory 60g --executor-cores 6
这就是我得到的:
SPARK_MAJOR_VERSION is set to 2, using Spark2
Exception in thread "main" java.lang.IllegalArgumentException: Missing application resource.
at org.apache.spark.launcher.CommandBuilderUtils.checkArgument(CommandBuilderUtils.java:253)
at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitArgs(SparkSubmitCommandBuilder.java:160)
at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitCommand(SparkSubmitCommandBuilder.java:276)
at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildCommand(SparkSubmitCommandBuilder.java:151)
at org.apache.spark.launcher.Main.main(Main.java:87)
所以,我想有一些东西要添加到这个代码行来运行,我不知道是什么。
最佳答案
这里:
spark-submit --master yarn --deploy-mode cluster --executor-memory 60g --executor-cores 6
您没有指定入口点和您的应用程序!
检查 spark-submit文件,其中指出:
一些常用的选项是:
†
所有依赖。该 URL 必须在您的内部全局可见
集群,例如,一个 hdfs://路径或一个 file://路径
存在于所有节点上。
主类,如果有的话
对于 Python 应用程序,只需在
<application-jar>
的位置传递一个 .py 文件。而不是 JAR,并使用 --py-files
将 Python .zip、.egg 或 .py 文件添加到搜索路径中.这是一个使用一些 JAR 文件和一个 python 文件的示例(为简单起见,我没有包含您的其他参数):
./spark-submit --jars myjar1.jar,myjar2.jar --py-files path/to/my/main.py arg1 arg2
I hope I can entry to spark shell (with that much memory and cores) and type code in there
那么你需要
pyspark
,不是 spark-submit
! What is the difference between spark-submit and pyspark?所以你真正想做的是:
pyspark --master yarn --deploy-mode cluster --executor-memory 60g --executor-cores 6
关于apache-spark - 使用自定义内核数和内存大小运行 Spark 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46319061/