更新1:添加spark安装中缺失的片段和env变量后-错误:找不到或加载主类org.apache.spark.launcher.main,命令不再抛出错误,而是打印自己,不执行任何其他操作。这是运行命令的新结果:
"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. 我在scala 2.12.12中使用spark tag 2.4.5。我已经完成了以下所有步骤:
创建了具有acr和azure存储、serviceaccount和角色的aks
内置Spark源
建立docker映像并推送到acr
构建示例jar并推送到存储
代理api服务器(kubectl代理)并执行spark submit:
./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服务器地址,任何东西,我仍然会得到相同的错误。
我想我一定是犯了一些愚蠢的错误,因为似乎没有什么比现在更能破坏命令了,但我真的不能把它搞定。有没有人知道哪里出了问题?
2条答案
按热度按时间vlurs2pr1#
好吧,所以我用spark-submit.cmd提交了作业。它工作,没有任何额外的设置。
我最终没能让bash脚本正常工作,我现在没有时间进一步研究它。所以,很抱歉提供了一个半途而废的答案,只是部分解决了原来的问题,但它仍然是一个解决方案。
下面的命令工作正常
lstz6jyr2#
看起来您正在执行的计算机上可能有问题
spark-submit
. 您可能在正在执行的计算机的类路径上缺少一些jarspark-submit
. 值得检查一下spark安装-错误:找不到或加载主类org.apache.spark.launcher.main