You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Ozone Java API读写文件时PERMISSION_DENIED问题排查

关于Ozone Java API权限异常的问题

我的Ozone连接配置

OzoneConfiguration ozoneConfiguration = new OzoneConfiguration();
ozoneConfiguration.addResource(new Path("/etc/hadoop/conf/ozone-site.xml"));
ozoneConfiguration.set("ozone.om.address", "ofs://ozone:9862");
OzoneClient ozClient = OzoneClientFactory.getRpcClient(ozoneConfiguration);
ObjectStore objectStore = ozClient.getObjectStore();
OzoneVolume ozoneVolume = objectStore.getVolume(VOLUME);
OzoneBucket ozoneBucket = ozoneVolume.getBucket(BUCKET);

列表操作的异常表现

执行列表文件代码:

List<OzoneFileStatus> fileStatuses = ozoneBucket.listStatus(filesDirectory, false, filesDirectory, 10000);
  • 当filesDirectory为目录类型键(如"home",该目录下有user文件夹)时,操作正常
  • 当filesDirectory为包含文件的路径(如"home/user",该路径下存在file.parquet.snappy)时,收到权限错误:

PERMISSION_DENIED
org.apache.hadoop.ozone.om.exceptions.OMException: User user@QA.DF.OCP.COM READ permission to access key Volume: data Bucket:bucket Key: /home/user

创建操作的异常表现

在home目录创建新文件夹正常,但执行文件创建代码:

ozoneBucket.createKey(fileName, fileLen)

时收到权限错误:

PERMISSION_DENIED
org.apache.hadoop.ozone.om.exceptions.OMException: User user@QA.DF.OCP.COM doesn't have CREATE permission to access key Volume:data Bucket:bucket Key:file1.snappy.parquet

环境与已排查信息

  • 使用的Ozone Client版本:hadoop-ozone-client 1.1.0
  • 终端执行hdfs dfs -ls ofs://ozone等操作完全正常,已通过Apache Ranger和终端-ls -R命令确认用户拥有所需的读写权限
  • 问题仅出现在Java API调用场景,怀疑是OzoneClient的配置问题,是否需要修改ozone-site.xml中的属性?请问我哪里配置有误?

内容的提问来源于stack exchange,提问作者Jelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:32:18