存取文件Apachespark使用ADLSgen

配置权限允许访问Apachespark写到ADLSGen1存储文件

写由dayanand.devarapalli

2022年12月9日

问题

AzureDatabricks使用并拥有写入ADLSGen1存储器的spark作业

尝试人工读写或删除文件夹中数据时,会收到报错消息。

禁止使用ACL验证失败资源不存在或用户无权执行请求操作

因果

AdLS Gen1存储时,Apachespark使用服务主机作为文件所有者服务本金定义dfs.adls.oauth2.client.id.

文件创建时继承 Hadoop文件系统默认权限Hadoop文件系统默认权限为666(-rw-rw-rw-m)22

文件夹创建时继承父文件夹权限,默认为770

因主服务主机而非用户,由于文件夹权限为0位,您没有权限访问文件夹

求解

选项1

使服务主用户与默认用户同组允许访问端口存储

请求微软支持帮助

选项2

ADLSGen1创建基础文件夹并设置权限至777写Spark输出到文件夹下Spark创建文件夹继承父文件夹权限,Spark创建的所有文件夹将拥有777权限允许用户访问文件夹

选项3

将AzureDatabricks集群默认umask从022修改为000

集成spark.hadoop.fs.permissions.umask-mode 000spark配置面向您的集群

负千分之六十六默认 Hadoop文件系统权限成为AzureDatabricks创建对象时使用默认权限

文章有帮助吗