解決 Azure Synapse Analytics Apache Spark 集區儲存體存取問題
適用於:Azure Synapse Analytics
Apache Spark 是一個平行處理架構,可支援記憶體內部處理,以大幅提升巨量資料分析應用程式的效能。 Azure Synapse Analytics 中的 Apache Spark 是雲端中 Apache Spark Microsoft實作之一。 Azure Synapse 可讓您輕鬆地在 Azure 中建立和設定無伺服器 Apache Spark 集區。 Azure Synapse 中的 Spark 集區與 Azure 儲存體和 Azure Data Lake Generation 2 Storage 相容。 因此,您可以使用 Spark 集區處理儲存於 Azure 的資料。
如果您遇到集區記憶體存取問題,例如「403」錯誤或 Synapse 工作區失敗以尋找連結的服務,請使用提供的指引來協助解決問題。
不支援的情節
當您從 Synapse Spark 集區連線到記憶體帳戶時,不支援下列使用案例:
- 線上到 ADLS Gen 1 記憶體帳戶
- 使用使用者指派的受控識別連線到 ADLS Gen 2 儲存器帳戶
- 線上到 ADLS Gen 2 記憶體帳戶,其具有:
- 共用 VNET Synapse 工作區
- 啟用防火牆的儲存體帳戶
常見問題與解決方案
錯誤 | 解決方法 |
---|---|
“errorMessage”:“LSRServiceException 為 [{”StatusCode“:400,”ErrorResponse“:{”code“:”LSRLinkedServiceFailure“,”message“:”找不到鏈接服務 AzureDataLakeStorage1; | 如果 Synapse 工作區與 Git 存放庫、Azure DevOps Services 或 GitHub 相關聯,就會產生此錯誤。 它也會在未發佈筆記本或鏈接服務等成品時產生。 將共同作業分支中的程式 碼變更 手動發佈至 Synapse 服務。 |
stdout: Exception in thread "main" org.apache.hadoop.fs.FileAlreadyExistsException: Operation failed: "此端點無法支援 BlobStorageEvents 或 SoftDelete。 如果您想要使用此端點,請停用這些帳戶功能。“, 409, HEAD, https://< storageaccountname.dfs.core.windows.net/scripts/?upn=false&action=getAccessControl&timeout=90> | 確認 ADLS Gen 2 記憶體已設定為 主要記憶體。 若要停用 SoftDelete,請清除 記憶體帳戶的 [啟用 Blob 虛刪除] 複選框。 |
針對 『403』 問題進行疑難解答
記憶體存取和帳戶存取
- 若要透過管線寫入記憶體,Synapse Workspace MSI 是執行記憶體上任何作業的安全性主體,例如記憶體上的讀取、寫入和刪除。
- 請確定工作區 MSI 帳戶具有記憶體 Blob 數據參與者角色來執行所有動作。
- 如果您使用 Azure Notebooks 來存取記憶體帳戶,除非您透過連結的服務存取記憶體,否則請使用登入的帳戶。
- 登入的用戶帳戶應具有記憶體 Blob 數據參與者角色,才能擁有完整的存取權和許可權。
- 若要連線到記憶體,請使用連結服務和服務主體驗證。 然後,在 Azure Active 上註冊的應用程式應該在 Azure 記憶體上指派「記憶體 Blob 數據參與者」。
針對儲存體中的角色型存取控制 (RBAC) 實作,細節會在容器層級進行控制。 如需詳細資訊,請參閱 Azure Data Lake Storage Gen2 中的存取控制。
Azure 角色型存取控制
Azure 角色型訪問控制會使用角色指派,將一組許可權套用至安全性主體,例如 Synapse Workspace MSI、登入使用者,或應用程式在 Microsoft Entra 標識符中註冊。 擁有者、參與者、讀者和記憶體帳戶參與者等角色可讓安全性主體管理記憶體帳戶。
存取控制清單
使用訪問控制清單 (ACL) 來套用目錄和檔案的詳細存取層級。
- 如果找到安全性主體的數據存取角色,例如記憶體 Blob 資料讀取器或記憶體 Blob 數據參與者,則會執行檢查,以確認該角色是否具有執行寫入、讀取和刪除等動作的許可權。 如果是,安全性主體可能會根據容器角色存取所有檔案和資料夾。
- 檔案或資料夾沒有額外的 ACL 檢查。
- 如果記憶體容器層級的安全性主體找不到數據存取角色,則會在檔案和資料夾上執行 ACL 檢查。