我一直在尝试向Kubernetes提交应用程序。我已经按照https://spark.apache.org/docs/latest/running-on-kubernetes.html中的教程,如建立Spark图像等。
但是每当我尝试运行命令spark-submit
时,pod总是抛出错误。kubectl logs <spark-driver-pods>
:
Error: Unable to initialize main class org.apache.spark.deploy.SparkSubmit
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/spi/Filter
我试着使用类似这样的语句:
spark-submit
...
--jars $(echo /opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/pyspark/jars/*.jar | tr ' ' ',')
...
但那也还是抛出错误。
与我的开发环境相关的一些注意事项:
- 我使用Kubernetes内置的Docker桌面
- 我在conda环境中使用pyspark,是的,我已经激活了这个环境,这就是为什么我可以在终端中使用
pyspark
。
还有什么我应该做的吗?或者忘记做的吗?
2条答案
按热度按时间iugsix8n1#
我使用的是Maven,但是在从log4j 1.x迁移到log4j 2.x时遇到了这个错误,并且意识到我仍然有一些代码只能用于1.x。为了保持兼容性,我没有重构代码,而是将这个依赖项添加到了pom.xml中。
hmae6n7t2#
下面一行对我很有效