簡體   English   中英

Azure Databricks 以存儲帳戶作為數據層

[英]Azure Databricks with Storage Account as data layer

我剛剛開始進行需要使用 Azure Databricks 分析大量數據的數據分析。 在計划使用 Databricks 筆記本進行分析時,我遇到了不同的存儲選項來加載數據 a) DBFS - Databricks 的默認文件系統 b) Azure Data Lake (ADLS) 和 c) Azure Blob Storage 看起來項目 (b) 和 (c) 可以安裝到工作區中以檢索數據以供我們分析。

有了以上的了解,請問我以下問題可以澄清嗎?

  1. 在 Databricks 上下文中使用這些存儲選項時,它們之間有什么區別? DBFS 和 ADLS 是否包含 HDFS 的文件管理原則,例如將文件分成塊、名稱節點、數據節點等?
  2. 如果我掛載 Azure Blob 存儲容器來分析數據,我仍然可以獲得與其他存儲選項相同的性能嗎? 鑒於 Blob 存儲是基於 object 的存儲,它是否仍將文件分成塊並將這些塊作為 RDD 分區加載到 Spark 執行器節點中?

DBFS 只是可擴展 object 存儲(如 AWS 上的 S3、Azure 上的 ADLS、GCP 上的 Google 存儲)之上的抽象。

默認情況下,當您創建工作空間時,您會獲得一個 DBFS 實例——所謂的DBFS Root 另外,您可以在/mnt文件夾下掛載其他存儲帳戶。 寫入掛載點路徑 ( /mnt ) 的數據存儲在 DBFS 根目錄之外。 即使 DBFS 根是可寫的,建議您將數據存儲在掛載的 object 存儲中,而不是存儲在 DBFS 根中。 DBFS 根不適用於生產客戶數據,因為存在一些限制,例如缺乏訪問控制,您無法訪問作為 DBFS 根安裝在工作區之外的存儲帳戶等。

存儲服務(如名稱節點等)的實際實現確實被忽略了——您使用與 HDFS 兼容的 API,但在底層實現會因雲和存儲風格而異。 對於 Azure,您可以在此博客文章中找到有關其實現的一些詳細信息。

關於第二個問題 - 是的,您仍然應該將文件拆分為塊等。Blob 存儲和數據湖存儲之間存在差異,特別是對於具有更好安全性 model 並且可能更好地針對大數據工作負載進行優化的 ADLS Gen 2。 這篇博文描述了它們之間的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM