如何使用火花提交在Kubernetes(minikube)上提交PySpark作业

时间:2020-05-10 12:04:42

标签: apache-spark amazon-s3 kubernetes pyspark

我的笔记本电脑上本地有一个PySpark作业。如果我想使用spark-submit在我的minikube集群上提交它,知道如何传递python文件吗?

我正在使用以下命令,但不起作用

./spark-submit \
        --master k8s://https://192.168.64.6:8443 \
        --deploy-mode cluster \
        --name amazon-data-review \
        --conf spark.kubernetes.namespace=jupyter \
        --conf spark.executor.instances=1 \
        --conf spark.kubernetes.driver.limit.cores=1 \
        --conf spark.executor.cores=1 \
        --conf spark.executor.memory=500m \
        --conf spark.kubernetes.container.image=prateek/spark-ubuntu-2.4.5 \
        --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
        --conf spark.kubernetes.container.image.pullPolicy=Always \
        --conf spark.kubernetes.container.image.pullSecrets=dockerlogin \
        --conf spark.eventLog.enabled=true \
        --conf spark.eventLog.dir=s3a://prateek/spark-hs/ \
        --conf spark.hadoop.fs.s3a.access.key=xxxxx \
        --conf spark.hadoop.fs.s3a.secret.key=xxxxx \
        --conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
        --conf spark.hadoop.fs.s3a.fast.upload=true \
        /Users/prateek/apache-spark/amazon_data_review.py

遇到以下错误-

python3: can't open file '/Users/prateek/apache-spark/amazon_data_review.py': [Errno 2] No such file or directory

是否需要将文件保留在Docker映像本身中。我们不能通过将其保存在笔记本电脑上在本地运行

2 个答案:

答案 0 :(得分:0)

Kubernetes上的Spark不支持使用spark-submit提交本地存储的文件。

要使其在集群模式下工作,您可以做的是基于prateek/spark-ubuntu-2.4.5构建Spark Docker映像,并在其中插入amazon_data_review.py(例如,使用Docker COPY /Users/prateek/apache-spark/amazon_data_review.py /amazon_data_review.py语句)。 / p>

然后仅使用spark-submit文件系统在local://命令中引用它,例如:

spark-submit \
  --master ... \
  --conf ... \
  ...
  local:///amazon_data_review.py

另一种选择是将该文件存储在http(s)://或类似hdfs://的可访问位置。

答案 1 :(得分:-1)

已解决。在客户端模式下运行它有助于运行

-部署模式客户端