1. 程式人生 > >容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析

容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析

容器 控制臺

摘要: 容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析 (二):Kubernetes如何助力Spark大數據分析 概述 本文為大家介紹一種容器化的數據服務Spark + OSS on ACK,允許Spark分布式計算節點對阿裏雲OSS對象存儲的直接訪問。

容器開啟數據服務之旅系列(二):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", 點擊 “參數”
?
技術分享圖片

  1. 給你的應用一個名字, e.g. spark-oss-online2
  2. (必選)填寫你的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大數據分析