Apache Spark 是用於 cluster computing 的 open source framework,如果需要構建分散式計算的系統,就會使用到 Apache Spark ,其繼承了 MapReduce 的架構,為此提供更有效率的資料查詢、檢索和複雜的運算,也因其可以在內存中運行,而大幅提升了整體的處理效能,Azure Databricks 便是一款基於 Apache Spark 為基礎的資料分析平台
Azure Databricks 由 Microsoft 與 Apache Spark 的創辦人共同設計,並建構於 Azure 雲端平台上,使用者可以直接地透過 Azure portal 啟動 Azure Databricks 的服務。Azure Databricks 支援從 Azure Blob Storage、Azure Data Lake Store、Apache Kafka 或 Hadoop Storgae 等的資料來源,處理包含透過 Azure Data Factory 進行批次工作或透過 Kafka 進行即時的資料串流;後續也支援和其他視覺化工具整合或其他串接服務做為資料的中繼站;Azure Databricks 也提供共同協作,不管你是資料科學家、資料工程師或是其他需要實作商業分析的人員都可以透過 Azure Databricks 的工作區來進行互動
重點整理
好的,前面都是些廢話,以下就幫大家稍微重點整理一下,幾個使用 Azure Databricks 的好處:
- fully managed 的雲端服務,無需自行管理 server,而是透過雲端代理商託管
- 可自行設定 auto scale 機制自動縮放底層的 cluster
- 如果原先便熟悉使用 Apache Spark,你可以很輕易地就上手 Azure Databricks,他包含了在 Apache Spark 生態系中既有的服務
- 支援 R、SQL、Python、Scala 和 Java
- 與 Azure 的 RBAC (Role-Based Access Control)整合,在權限的控管上能有更好的體驗 (有好的權限控管機制真的非常重要啊!)
- 與 AAD (Azure Active Directory) 整合,並支援 SSO (Single Sign On),使用既有的帳戶直接進行操作
- (如果我還有想到再補充)
環境準備
在 Azure 上建立 Azure Databricks 資源
在 Azure portal 搜尋欄搜尋 Databricks 就可以找到 Azure Databricks 的服務,點選並建立
Azure Databricks 的 pricing tier 有三種,分別可以使用到不同的服務,你可以根據你的需求選擇,這邊我選擇的是 Standard 的 sku
如果需要更加 secure 的選擇,你可以將 Azure Databricks 的工作區建立在既有的 virtual network 中,如果是練習用的話可以先選擇 No
完成建立後,到 Azure Databricks 的頁面點選 Launch Workspace 便可以啟動你的工作區
建立 Cluster
選擇 Clusters 並點選 Create Cluster 可以開始建立新的叢集
Cluster 中 Node 類型基本上分成 Worker Node 和 Driver Node。
Cluster 由一個 Driver Node 和一到數個不等的 Worker Node 所組成,針對 Driver Node 和 Worker Node 可以分別選擇不同效能的機器,Driver Node 會負責維護及編譯 Notebook 上的命令列和 Apache Spark 主機的協調,並交由 Worker Node 進行 process 的處理
Worker Type / Driver Type
你可以選擇 Worker Node 和 Driver Node 的類型,包括 General、Compute Optimized 或是 GPU 等類型的機器都可以選擇
Cluster Mode
Azure Databricks 支援三種叢集模式:Standard、High Concurrency 和 Single Node
- Standard (預設):使用此種模式即表示會配給你一台(到多台)機器,相較於 High Concurrency 的模式較不會有冷啟動的問題,但機器閒置時依仍會收取費用,也因此你可以設定閒置超過一定時間便進行 terminate,支援Python、R、Scala 和 SQL
- High Concurrency:為雲端託管資源的模式,僅在執行期間向使用者收取費用,主要優勢在於,但僅適用於 SQL、Python 和 R,並不支援 Scala
- Single Node:此模式如字面僅有一個節點,不會有 Worker Node,執行Spark 的工作時會在 Driver Node執行 (也因此你會發現選擇 Standard 時他會要求你至少需要一個 Worker Node)
除了 UI 的方式之外,也可以透過 Clusters CLI 或 Clusters API 來對 cluster 進行操作
建立完成後,便能在 Cluster 的頁面中看到你建立的叢集的相關資訊及狀態
總結
在 Azure 上其實還有許多進行 Machine Learning 你可以使用到的多項服務,希望能有機會在多寫幾篇介紹一下,另外,下一篇文章將會介紹到如何使用 Azure Databrick 來實作資料的分析和視覺化,歡迎對 Azure Databricks 有興趣的朋友,也可以藉由下篇文章,輕鬆上手看看囉!
Reference
- Wiki|MapReduce
- Microsoft Doc | What is Azure Databricks
- Microsoft Doc | Configure Clusters
- Microsoft Doc | Differences between HD Insight and Azure Data bricks?
- Microsoft Doc | Analytics in Azure remains unmatched with new innovations
- Databricks Doc | New Microsoft Azure Data Warehouse Service and Azure Databricks Combine Analytics, BI, and Data Science
- element61 | When to use Azure Synapse Analytics and/or Azure Databricks ?