如果你正在使用 Flink 的 Direct Reader 来访问 Hive ACID 表,并且受到 Ranger 授权限制,无法读取表的数据,可能是因为 Direct Reader 不经过 Hive 的 Thrift 接口,而是直接读取 Hive 表的数据文件,绕过了 Ranger 的授权验证。
在启用 Ranger 鉴权的情况下,Ranger 通常会拦截对 Hive 表的访问请求,根据预定义的策略进行权限验证。然而,Flink Direct Reader 绕过了 Hive Thrift 接口,直接读取数据文件,因此无法受到 Ranger 的授权限制。
能力JDBC方式Spark Direct Reader模式Ranger 与细粒度访问控制的集成✓不适用Hive ACID 读取✓✓处理的工作负载非生产的工作负载、小数据集生产工作负载,没有细粒度访问控制的 ETL
如果你希望在受到 Ranger 鉴权的环境中使用 Flink 访问 Hive ACID 表,可以尝试以下方法:
- 使用 Hive Thrift 接口:不要使用 Flink 的 Direct Reader,而是通过 Hive JDBC 接口或 Hive Streaming API 连接到 Hive,这样数据访问将经过 Hive 的 Thrift 接口,受到 Ranger 的授权限制。
- 配置 Ranger 授权策略:在 Ranger 中配置适当的授权策略,允许 Flink
版权归原作者 贾斯汀玛尔斯 所有, 如有侵权,请联系我们删除。