首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么pyspark驱动程序不将jar文件下载到本地存储?

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

Stack Overflow用户
提问于 2019-11-06 02:03:14
回答 1查看 161关注 0票数 0

我正在使用spark-on-k8s-operator在Kubernetes上部署Spark 2.4.4。然而,我很确定这个问题是关于Spark本身的,而不是关于Kubernetes对它的部署。

当我将作业部署到kubernetes集群时,我会包含几个文件,包括jars、pyfiles和main。在spark-on-K8s中;这是通过一个配置文件完成的:

代码语言:javascript
运行
复制
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"

这相当于

代码语言:javascript
运行
复制
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中,有一个管理提交的spark作业的sparkapplication kubernetes pod,该pod spark-submits到一个驱动程序pod (然后与worker pod交互)。我的问题出现在driver pod上。一旦驱动程序收到spark-submit命令,它就会开始自己的工作,并如预期的那样从亚马逊网络服务S3中提取所需的文件。但是,它不会拉取jar文件:

代码语言:javascript
运行
复制
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和pyfiles文件被“提取”了。查看驱动程序pod,我在任何地方都找不到jar文件;它只是不能在本地下载。这当然会使我的应用程序崩溃,因为mysql驱动程序不在类路径中。

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

EN

回答 1

Stack Overflow用户

发布于 2019-11-07 00:23:08

PySpark有一点不清楚,也没有足够的文档记录依赖项管理。

如果你的问题是只添加.jar,我建议你使用--packages ... (spark-operator应该有类似的选项)。

希望它能为你工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58717043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档