pyspark驱动程序为什么不将jar文件下载到本地存储?

我正在使用Lifecycle FAQ—Internet Explorer and Edge在Kubernetes上部署Spark 2.4.4。但是,我很确定这个问题是关于Spark本身的,而不是关于它的Kubernetes部署的。

当我将作业部署到kubernetes集群时,我包含了几个文件,包括jar,pyfile和main。在k8s上这是通过配置文件完成的:

spec:
  mainApplicationFile: "s3a://project-folder/jobs/test/db_read_k8.py"
  deps:
    jars:
      - "s3a://project-folder/jars/mysql-connector-java-8.0.17.jar"
    pyfiles:
      - "s3a://project-folder/pyfiles/pyspark_jdbc.zip"

这等同于

spark-submit \
   --jars s3a://project-folder/jars/mysql-connector-java-8.0.17.jar \ 
   --py-files s3a://project-folder/pyfiles/pyspark_jdbc.zip \
   s3a://project-folder/jobs/test/db_read_k8.py

在spark-on-k8s中,有一个sparkapplication kubernetes吊舱,用于管理提交的火花作业,该吊舱将火花提交给驱动程序吊舱(然后与工作人员吊舱进行交互)。我的问题发生在驱动程序窗格上。一旦驱动程序收到spark-submit命令,它便开始处理其业务,并按预期从AWS S3中提取所需的文件。除此之外,它不会拉出jar文件:

spark-kubernetes-driver 19/11/05 17:01:19 INFO SparkContext: Added JAR s3a://project-folder/jars/mysql-connector-java-8.0.17.jar at s3a://sezzle-spark/jars/mysql-connector-java-8.0.17.jar with timestamp 1572973279830
spark-kubernetes-driver 19/11/05 17:01:19 INFO SparkContext: Added file s3a://project-folder/jobs/test/db_read_k8.py at s3a://sezzle-spark/jobs/test/db_read_k8.py with timestamp 1572973279872
spark-kubernetes-driver 19/11/05 17:01:19 INFO Utils: Fetching s3a://project-folder/jobs/test/db_read_k8.py to /var/data/spark-f54f76a6-8f2b-4bd5-9644-c406aecac2dd/spark-42e3cd23-55c5-4099-a6af-455efb5dc4f2/userFiles-ae47c908-d0f0-4ff5-aee6-4dadc5c9b95f/fetchFileTemp1013256051456720708.tmp
spark-kubernetes-driver 19/11/05 17:01:19 INFO SparkContext: Added file s3a://project-folder/pyfiles/pyspark_jdbc.zip at s3a://sezzle-spark/pyfiles/pyspark_jdbc.zip with timestamp 1572973279962
spark-kubernetes-driver 19/11/05 17:01:20 INFO Utils: Fetching s3a://project-folder/pyfiles/pyspark_jdbc.zip to /var/data/spark-f54f76a6-8f2b-4bd5-9644-c406aecac2dd/spark-42e3cd23-55c5-4099-a6af-455efb5dc4f2/userFiles-ae47c908-d0f0-4ff5-aee6-4dadc5c9b95f/fetchFileTemp6740168219531159007.tmp

所有三个必需文件都被“添加”,但是只有main和pyfile被“获取”。从驱动程序窗格中查看,我在任何地方都找不到jar文件。它只是不会在本地下载。当然,这会使我的应用程序崩溃,因为mysql驱动程序不在类路径中。

为什么不像下载pyfile和python main一样将jar文件下载到驱动程序的本地文件系统中?

wslqfm 回答:pyspark驱动程序为什么不将jar文件下载到本地存储?

PySpark有点不清楚,没有足够的文档说明依赖管理。

如果您的问题仅在于添加.jar,我建议您改用--packages ...(spark-operator应该具有类似的选项)。

希望它会为您工作。

本文链接:https://www.f2er.com/3157394.html

大家都在问