摘要: 容器開啓數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析 (二):Kubernetes如何助力Spark大數據分析 概述 本文爲你們介紹一種容器化的數據服務Spark + OSS on ACK,容許Spark分佈式計算節點對阿里雲OSS對象存儲的直接訪問。html
概述web
本文爲你們介紹一種容器化的數據服務Spark + OSS on ACK,容許Spark分佈式計算節點對阿里雲OSS對象存儲的直接訪問。藉助阿里雲Kubernetes容器服務與阿里雲OSS存儲資源的深度整合,容許Spark分佈式內存計算,機器學習集羣對雲上的大數據直接進行分析和保存結果。shell
先決條件機器學習
你已經經過阿里雲容器服務建立了一個Kubernetes集羣,詳細步驟參見建立Kubernetes集羣分佈式
從容器服務控制檯建立一個Spark OSS實例學習
使用三次點擊來建立一個1 master + 3 worker 的Spark OSS的實例測試
1 登陸 https://cs.console.aliyun.com/大數據
2 點擊 「應用目錄」ui
3 選擇 "spark-oss", 點擊 「參數」阿里雲

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集羣
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
1.粘貼下列代碼,使用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
閱讀更多幹貨好文,請關注掃描如下二維碼: