访问文件写的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砖创建对象。

这篇文章有用吗?