Spark in AKS. Error: Could not find or load main class org.apache.spark.launcher.Main

Spark in AKS. Error: Could not find or load main class org.apache.spark.launcher.Main

更新 1:从 Spark installation - Error: Could not find or load main class org.apache.spark.launcher.Main 添加缺失的部分和 env 变量后,该命令不再抛出错误,而是打印自身并且不执行任何其他操作。这是 运行 命令的新结果:

"C:\Program Files\Java\jdk1.8.0_271\bin\java" -cp "C:\Users\xxx\repos\spark/conf\;C:\Users\xxx\repos\spark\assembly\target\scala-2.12\jars\*" org.apache.spark.deploy.SparkSubmit --master k8s://http://127.0.0.1:8001 --deploy-mode cluster --conf "spark.kubernetes.container.image=xxx.azurecr.io/spark:spark2.4.5_scala2.12.12" --conf "spark.kubernetes.authenticate.driver.serviceAccountName=spark" --conf "spark.executor.instances=3" --class com.xxx.bigdata.xxx.XMain --name xxx_app https://storage.blob.core.windows.net/jars/xxx.jar

我一直在按照本指南在 AKS 中设置 Spark:https://docs.microsoft.com/en-us/azure/aks/spark-job。我将 Spark 标签 2.4.5 与 scala 2.12.12 一起使用。我已完成以下所有步骤:

./bin/spark-submit \
    --master k8s://http://127.0.0.1:8001 \
    --deploy-mode cluster \
    --name xxx_app\
    --class com.xxx.bigdata.xxx.XMain\
    --conf spark.executor.instances=3 \
    --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
    --conf spark.kubernetes.container.image=xxx.azurecr.io/spark:spark2.4.5_scala2.12.12 \
    "https://storage.blob.core.windows.net/jars/xxx.jar"

我得到的只是Error: Could not find or load main class org.apache.spark.launcher.Main

现在,有趣的是我在命令中更改什么根本不重要。我可以弄乱 ACR 地址、spark 图像名称、jar 位置、api-服务器地址,任何东西,我仍然会遇到同样的错误。

我想我一定是犯了一些愚蠢的错误,因为似乎没有什么比现在更能破坏命令了,但我不能真正确定它。 有人知道哪里出了问题吗?

看起来这可能是您正在执行的机器上的问题 spark-submit。您可能在正在执行的机器上的类路径中丢失了一些 jar spark-submit。值得一看 Spark installation - Error: Could not find or load main class org.apache.spark.launcher.Main

好吧,所以我成功地使用 spark-submit.cmd 提交了作业。无需任何额外设置即可运行。

我最终没能使 bash 脚本运行,目前我没有时间进一步研究它。所以,很抱歉提供了一个半评估的答案,只部分解决了原来的问题,但它仍然是一个解决方案。

下面的命令工作正常

bin\spark-submit.cmd --master k8s://http://127.0.0.1:8001 --deploy-mode cluster --name spark-pi --class org.apache.spark.examples.SparkPi --conf spark.executor.instances=3 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark --conf spark.kubernetes.namespace=dev --conf spark.kubernetes.container.image=xxx.azurecr.io/spark:spark-2.4.5_scala-2.12_hadoop-2.7.7  https://xxx.blob.core.windows.net/jars/SparkPi-assembly-0.1.0-SNAPSHOT.jar