我的笔记本电脑上本地有一个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映像本身中。我们不能通过将其保存在笔记本电脑上在本地运行
答案 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)
已解决。在客户端模式下运行它有助于运行
-部署模式客户端