Flink CDC这个权限问题的么,场景是从Kafka -> hive ,通过FlinkSQL实现,在dolphinscheduler调度。
Permission denied: user=dolphinscheduler, access=READ, inode="/warehouse/tablespace/managed/hive/":hdfs:hadoop:drwxrwx---?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的问题描述,错误信息表明在通过Flink SQL将数据从Kafka写入Hive时,调度工具DolphinScheduler的用户dolphinscheduler
没有权限访问HDFS路径/warehouse/tablespace/managed/hive/
。以下是针对该问题的详细分析和解决方案:
权限问题来源:
/warehouse/tablespace/managed/hive/
的权限设置为drwxrwx---
,即只有文件所有者(hdfs
)和所属组(hadoop
)的成员可以读写。dolphinscheduler
,而该用户既不是文件的所有者,也不属于hadoop
组,因此无法访问该路径。涉及组件:
dolphinscheduler
用户执行任务。关键点:
dolphinscheduler
用户有权限访问目标路径。可以通过修改HDFS路径的权限,使dolphinscheduler
用户能够访问目标路径。
检查当前路径权限: 使用以下命令查看路径权限:
hdfs dfs -ls /warehouse/tablespace/managed/hive/
输出示例:
drwxrwx--- - hdfs hadoop 0 2023-10-01 10:00 /warehouse/tablespace/managed/hive/
修改权限:
方法1:添加其他用户读权限
使用以下命令为其他用户添加读权限:
hdfs dfs -chmod o+r /warehouse/tablespace/managed/hive/
修改后权限变为drwxrwxr--
,允许其他用户读取。
方法2:更改路径所属组
将路径所属组更改为dolphinscheduler
所在的组(例如dolphinscheduler
):
hdfs dfs -chgrp -R dolphinscheduler /warehouse/tablespace/managed/hive/
hdfs dfs -chmod -R g+r /warehouse/tablespace/managed/hive/
验证权限: 使用dolphinscheduler
用户重新运行任务,确认是否可以正常访问路径。
如果无法修改HDFS路径权限,可以通过更改任务运行用户来解决问题。
修改DolphinScheduler的运行用户:
dolphinscheduler
更改为hdfs
或hadoop
组中的用户。hdfs
或其他具有权限的用户。验证用户切换: 确保任务以新用户身份运行,并重新提交任务。
如果您的集群启用了Kerberos认证,需要确保dolphinscheduler
用户已正确配置Kerberos票据。
生成Kerberos票据: 使用以下命令为dolphinscheduler
用户生成票据:
kinit dolphinscheduler
配置Flink和DolphinScheduler:
dolphinscheduler
用户所需的最小权限,避免过度开放权限带来的安全风险。通过上述方案,您可以解决Permission denied
问题并确保任务正常运行。如果问题仍未解决,请提供更多上下文信息以便进一步分析。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。