訪問文件寫的Apache ADLS Gen1火花

配置允許訪問文件的權限,Apache火花寫入ADLS Gen1存儲。

寫的dayanand.devarapalli

去年發表在:2022年12月9日

問題

您正在使用Azure磚,引發寫作ADLS Gen1存儲工作。

當你試圖手動讀取、寫入或刪除文件夾中的數據得到一個錯誤消息。

被禁止的。ACL驗證失敗。資源不存在或用戶沒有被授權執行請求的操作

導致

寫數據ADLS Gen1存儲時,Apache火花使用服務主體為它創建的文件的所有者。服務主體的定義dfs.adls.oauth2.client.id

當文件被創建時,他們繼承的默認權限Hadoop文件係統。Hadoop文件係統有一個默認權限666 (-rw-rw-rw)和一個默認022年umask,結果在644年的權限設置為默認的文件。

當創建文件夾,他們繼承父文件夾的權限,默認是770。

因為老板是服務主體而不是用戶,你沒有權限訪問該文件夾由於0在文件夾的權限。

解決方案

選項1

使同一組的用戶服務主體部分為默認用戶。這將允許通過門戶訪問當訪問存儲。

請聯係微軟支持援助。

選項2

創建一個基礎文件夾ADLS Gen1和將權限設置為777。寫火花輸出在這個文件夾中。因為文件夾由火花繼承父文件夾的權限,所有文件夾由火花將有777權限。這允許任何用戶訪問文件夾。

選項3

更改默認umask從022年到000年在Azure磚集群。

spark.hadoop.fs.permissions。umask-mode 000火花配置為您的集群。

umask 000,默認Hadoop文件係統權限666成為默認的權限時使用Azure磚創建對象。

這篇文章有用嗎?