问题
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 000中spark配置面向您的集群
负千分之六十六默认 Hadoop文件系统权限成为AzureDatabricks创建对象时使用默认权限