GCP現為Apache Spark推出Kubernetes Operator,簡稱Spark Operator,能夠讓使用者在雲端原生地使用Kubernetes管理Spark應用程式。

Spark Operator由於原生整合Kubernetes,可以執行、監控和管理Spark應用程式生命周期。Google提到,Spark Operator為Kubernetes自定義的控制器,能對Spark應用程式進行高精細度的生命周期管理,包括使用可配置的重啟政策,自動重新啟動Spark應用程式,以及執行使用Cron排程的應用程式。

Spark Operator也提供高度彈性的功能,還整合日誌記錄和監控等Kubernetes服務,讓使用者可以創建描述Spark應用程式的宣告式規範,並使用Kubernetes原生工具諸如Kubectl,來管理應用程式。使用者能獲得通用控制介面,以管理Kubernetes的各式工作負載,簡化應用程式管理工作,並提高叢集資源利用率。

Google在Spark Operator中支援Apache Spark 2.4,並為Python和R語言量身定做Docker映像檔,供使用者在Kubernetes上執行PySpark和SparkR應用程式。另外,Spark Operator還有客戶端模式,允許如Spark Shell等互動式應用程式,以及Jupyter和Apache Zeppelin筆記本等資料科學工具,原生地在Kubernetes上執行。也因為Apache Spark 2.4為Kubernetes新增的強化和修復功能,讓其原生Kubernetes整合更加可靠。

Spark Operator整合了多種GCP服務,包括記錄和監控服務Stackdriver,以及分析資料倉儲BigQuery。其以Prometheus資料格式公開應用程式等級的指標,並自動設置Spark應用程式,提供驅動程式與執行器(Executor)等級的Prometheus指標。結合Prometheus以及Stackdriver,叢集可以自動收集指標並將其發送至Stackdriver進行監控,當應用程式在GKE上執行時,系統將會自動收集驅動程式與執行器日誌,並推送至Stackdriver。

Spark Operator還提供了命令列工具sparkctl,能用來自動檢測應用程式在使用者電腦上的相依性,並將其上傳至雲端儲存桶中,並把客戶端的本機相依性,替換成儲存在雲端的應用程式規範,如此便能大幅簡化客戶端應用程式在Kubernetes環境的相依性設定。

另外,Spark Operator還附帶了一個自定義的Spark 2.4 Dockerfile,在應用程式中支援輸入或是輸出資料至雲端儲存,Dockerfile也支援Prometheus JMX輸出器,當Spark Operator啟用Prometheus監控時,該輸出器為預設使用和配置應用程式的方法。


Advertisement

更多 iThome相關內容