一般性问题
如何购买 CHDFS?
若您需使用 CHDFS,可参见 CHDFS 购买指南 文档了解相关费用说明,可参见 快速入门 文档完成服务的开通和使用。
可以跨地域访问 CHDFS 吗?
不能,目前只支持在 VPC 网络内,通过同地域访问 CHDFS。
使用 CHDFS 有 hadoop 环境要求吗?
所有 Hadoop 2.x 以上版本都可以使用。
CHDFS 支持并发读写同一个文件吗?
CHDFS 支持并发读同一个文件,但是同一个时刻,只支持一个客户端写同一个文件。
Ranger 鉴权和认证常见问题
Hive 指定 COSN 或 OFS 路径建表时,报错“HiveAccessControlException”,该如何处理?
您需要在 hive 中放开对 URL 的校验,需要在 ranger 控制台 hive 里配置允许 URL 权限。
注意:请您注意查看报错日志的格式,其报错的主要原因从 Ranger 服务报出,大多数情况下是 ranger admin 配置权限有误。
kerberos 下 spark 提交任务时,报错“HiveAccessControlException”,该如何处理?
应用程序需要与其他安全 Hadoop 文件系统交互,则需要在启动时将其 URI 显式提供给 Spark,配置参数 spark.kerberos.access.hadoopFileSystems=cosn://bucket-appid,ofs://f4mxxxxxxxx-Xxxx.chdfs.ap-guangzhou.myqcloud.com
,详情可参考 Spark 官方文档。
SPARK 删表不进回收站,该如何处理?
spark 中 create table 指定 Location 等价于创建外部表,删除外部表无法删除数据,具体可参考 Spark 官方文档。此外,在 hive on mr 情况下,drop table 可删除。
Hive 执行 INSERT 语句时,报错“AccessControlException”,该如何处理?
hive 默认引擎是 MapReduce,yarn-site.xml 文件新增配置项。
<property>
<name>mapreduce.job.hdfs-servers</name>
<value>
ofs://f4mxxxxxxx-XXXX,cosn://bucketname-appid,${fs.defaultFS}
</value>
</property>
- 如果 hive 引擎是 tez,则在 tez-site.xml 文件中新增配置项 tez.job.fs-servers,value 值同上。
- 如果 hive 引擎是 beeline 连 hive,则需要重启 hiveserver2 加载新的 yarn-site 配置。
访问 OFS 报错,该如何处理?
报错由 ofs 后端返回,启用 ranger 后,需要关闭 posix。
- 如果是 CHDFS,则操作如下:
- 如果是融合 bucket,则操作如下:
YARN 命令行提交任务,报错“renew token failed”,该如何处理?
yarn 命令行执行时,需要 -Dmapreduce.job.send-token-conf 参数。
如何自建 cosranger?
请参考 COS Ranger 权限体系解决方案、CHDFS Ranger 权限体系解决方案 文档。
腾讯云 EMR 中如何启用 Ranger?
在 EMR 控制台购买 Ranger 和 cosranger 组件,省去自己部署的步骤。
- 如果是 CHDFS,在 core-site.xml 中新增配置项:fs.ofs.ranger.enable.flag,设置为:true。
- 如果是 COSN,在 core-site.xml 中新增配置项:fs.cosn.credentials.provider,设置为:org.apache.hadoop.fs.auth.RangerCredentialsProvider。
启用 cosranger 后,执行 hadoop fs 命令时,报错“ java.lang.IllegalArgumentException: Failed to specify server's Kerberos principal name”,该如何处理?
- 在 core-site.xml 中新增配置项:qcloud.object.storage.kerberos.principal
- 如果是 HDFS 集群报该错误,在 core-site.xml 中新增配置项:dfs.namenode.kerberos.principal
修改 Ranger policy 未生效,该如何处理?
- 如果是 CHDFS,修改 cosranger 配置文件 ranger-chdfs-security.xml 中的配置项:ranger.plugin.chdfs.policy.pollIntervalMs,将值调小(单位毫秒)。
- 如果是 COSN,修改 cosranger 配置文件 ranger-cos-security.xml 中的配置项:ranger.plugin.cos.policy.pollIntervalMs,将值调小(单位毫秒)。
alluxio 包污染,该如何处理?
在 /usr/local/service 下,执行以下命令:
find . -name "*.jar" -exec grep -Hls "org/apache/hadoop/fs/cosn/ranger/client/RangerQcloudObjectStorageClientImpl" {} \;
这种问题出在大数据 EMR 团队在升级 hadoop ranger client 的 jar 包时,有部分组件未完全升级导致的包污染,使用上面的命令行找到相关 jar 包删掉即可。