我的笔记本电脑上本地有一个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镜像本身中。我们不能把它放在笔记本电脑上本地运行吗
Kubernetes上的Spark不支持使用spark-submit
提交本地存储的文件。
要使其在集群模式下工作,可以做的是在prateek/spark-ubuntu-2.4.5
的基础上构建Spark Docker镜像,并在其中放入amazon_data_review.py
(例如使用DockerCOPY /Users/prateek/apache-spark/amazon_data_review.py /amazon_data_review.py
语句(。
然后使用local://
文件系统在spark-submit
命令中引用它,例如:
spark-submit
--master ...
--conf ...
...
local:///amazon_data_review.py
另一种选择是将该文件存储在类似http(s)://
或hdfs://
的可访问位置。
问题已经解决。以客户端模式运行有助于运行
--部署模式客户端