容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析
容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析
(二):Kubernetes如何助力Spark大數據分析
概述
本文為大家介紹一種容器化的數據服務Spark + OSS on ACK,允許Spark分布式計算節點對阿裏雲OSS對象存儲的直接訪問。借助阿裏雲Kubernetes容器服務與阿裏雲OSS存儲資源的深度整合,允許Spark分布式內存計算,機器學習集群對雲上的大數據直接進行分析和保存結果。
先決條件
你已經通過阿裏雲容器服務創建了一個Kubernetes集群,詳細步驟參見創建Kubernetes集群
從容器服務控制臺創建一個Spark OSS實例
使用三次點擊來創建一個1 master + 3 worker 的Spark OSS的實例
1 登錄 https://cs.console.aliyun.com/
2 點擊 “應用目錄”
3 選擇 "spark-oss", 點擊 “參數”
?
- 給你的應用一個名字, e.g. spark-oss-online2
- (必選)填寫你的oss_access_key_id和oss_access_key_secret
Worker: # set OSS access keyID and secret oss_access_key_id: <Your sub-account> oss_access_key_secret: <your key_secret of sub-account>
3.(可選)修改工作節點數目 Worker.Replicas: 3
?
4 點擊 “部署”
5 點擊 “Kubernetes 控制臺”,查看部署實例
6 點擊 服務, 查看外部端點, 點擊URL訪問Spark集群
?
7 測試Spark集群
1.打開一個spark-shell
kubectl get pod | grep worker
spark-oss-online2-worker-57894f65d8-fmzjs 1/1 Running 0 44m
spark-oss-online2-worker-57894f65d8-mbsc4 1/1 Running 0 44m
spark-oss-online2-worker-57894f65d8-zhwr4 1/1 Running 0 44m
kubectl exec -it spark-oss-online2-worker-57894f65d8-fmzjs -- /opt/spark/bin/spark-shell --master spark://spark-oss-online2-master:7077
粘貼下列代碼,使用Spark測試OSS的讀寫性
// Save RDD to OSS bucket
val stringRdd = sc.parallelize(Seq("Test Strings\n Test String2"))
stringRdd.saveAsTextFile("oss://eric-new/testwrite12")
// Read data from OSS bucket
val lines = sc.textFile("oss://eric-new/testwrite12")
lines.take(10).foreach(println)
Test Strings
Test String2
CLI 命令行操作
Setup keys and deploy spark cluster in one command
export OSS_ID=<your oss id>
export OSS_SECRET=<your oss secrets>
helm install -n myspark-oss --set "Worker.oss_access_key_id="$OSS_ID",Worker.oss_access_key_secret="$OSS_SECRET incubator/spark-oss
kubectl get svc| grep oss
myspark-oss-master ClusterIP 172.19.9.111 <none> 7077/TCP 2m
myspark-oss-webui LoadBalancer 172.19.13.1 120.55.104.27 8080:30477/TCP 2m
原文鏈接
閱讀更多幹貨好文,請關註掃描以下二維碼:
容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析