Sentry 是否控制使用 HDFS 协议的客户端对 HDFS 文件的访问?

Does Sentry control access to HDFS files for clients using the HDFS protocol?

A​​pache Sentry docs 对 Sentry 的描述如下:

Sentry currently works out of the box with Apache Hive, Hive Metastore/HCatalog, Apache Solr, Impala and HDFS (limited to Hive table data).

文档还显示了一张图片,表明直接访问 HDFS 的应用程序不会使用 Sentry,而是使用文件 ACL - 我的理解正确吗?

您从文档中的理解是正确的。

例如,对于 Hive,与存储在 HDFS 路径 /user/hive/warehouse(默认情况下)中的托管 tables 关联的数据将由 hive:hive(用户:组)拥有,当哨兵已启用。这样除了使用哨兵规则授权访问的用户外,其他用户将无法访问这些目录下的文件。

存在于 Hive 的这个默认 HDFS 路径之外的数据,即通常与外部关联的数据 table 和 HDFS 中的其他数据仍然可以绕过 Sentry 正常访问,因为它们不受 Sentry 管理默认情况下。

因此,如果我们想在启用 Sentry 的集群中通过 Hive 查询将数据写入这些目录之一,我们需要将所需的权限分配给分配给组的角色(组中的用户运行查询是的成员)。

希望对您有所帮助!

有关哨兵规则的更多信息HERE