[英]spark-submit job by doing exec on a master pod in k8s
我已經成功地在 kubernetes 上創建了帶有 1 個 master 和 2 個 worker pod 的 spark 集群。 spark v2.4.3 在 k8s 上運行 Java 8 和 scala 2.11.12,帶有 kubectl v1.16.0 和 minikube v1.4.0。
有關詳細kubectl get pods
顯示 -
NAME READY STATUS RESTARTS AGE
spark-master-fcfd55d7d-qrpsw 1/1 Running 0 66m
spark-worker-686bd57b5d-6s9zb 1/1 Running 0 65m
spark-worker-686bd57b5d-wrqrd 1/1 Running 0 65m
我還可以通過exec
主 pod 來運行內置 spark 應用程序,例如pyspark
和spark-shell
-
kubectl exec spark-master-fcfd55d7d-qrpsw -it spark-shell`
由於我已經有足夠的環境,我正試圖在上面運行我的 spark 工作。 但它不起作用。 火花提交命令如下所示。
#!/usr/bin/env bash
spark-submit \
--class com.cloudian.spark.main.RequestInfoLogStreamer \
/Users/atekade/IdeaProjects/scala-spark-streaming/target/scala-2.11/scala-spark-streaming_2.11-1.0.jar
然后將.sh
腳本提交到主 pod -
kubectl exec spark-master-fcfd55d7d-qrpsw /Users/atekade/IdeaProjects/scala-spark-streaming/logstreamer.sh
但這給了我錯誤-
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/Users/atekade/IdeaProjects/scala-spark-streaming/logstreamer.sh\": stat /Users/atekade/IdeaProjects/scala-spark-streaming/logstreamer.sh: no such file or directory": unknown
command terminated with exit code 126
我在這里做錯了什么? 我的目的是讓這些主節點和工作節點完成工作。
從錯誤中可以看出:
OCI運行時執行失敗:執行失敗:container_linux.go:345:啟動容器進程導致“exec:\”/Users/atekade/IdeaProjects/scala-spark-streaming/logstreamer.sh\”:stat /Users/atekade/IdeaProjects/ scala-spark-streaming/logstreamer.sh:沒有這樣的文件或目錄”:未知命令以退出代碼 126 終止
我們最感興趣的是 part /Users/atekade/IdeaProjects/scala-spark-streaming/logstreamer.sh: no such file or directory
,這意味着 pod 無法找到logstreamer.sh
文件。
腳本logstreamer.sh
需要上傳到spark-master
pod。 scala-spark-streaming_2.11-1.0.jar
也需要在那里。
您可以為 Storage 配置 PersistenVolume ,這將很有用,因為如果您的 pod 將被重新調度,所有未存儲在 PV 上的數據都將丟失。
這是持久卷的minikube 文檔的鏈接。
您還可以使用不同的存儲類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.