配置安全性
您可以使用访问已进行 Kerberize 的 HDFS 数据中描述的任何安全选项来访问 Hive 数据。本主题描述了使用 HCatalog 连接器时特别需要的其他步骤。
如果您在 Vertica 中使用 Kerberos,则 HCatalog 连接器可以使用授权服务(Sentry 或 Ranger)。如果您使用委托令牌,则必须自己管理授权。
Kerberos
您可以在 Vertica 中使用 Kerberos,如将 Kerberos 与 Vertica 结合使用中所述。
如何配置 HCatalog 连接器取决于 Hive 如何管理授权。
-
如果 Hive 使用 Sentry 来管理授权,并且如果 Sentry 使用 ACL 同步,则 HCatalog 连接器必须以当前用户身份访问 HDFS。验证 EnableHCatImpersonation 配置参数是否设置为 1(默认值)。ACL 同步自动为授权用户提供对底层 HDFS 文件的读取访问权限。
-
如果 Hive 在没有 ACL 同步的情况下使用 Sentry,则 HCatalog 连接器必须作为 Vertica 主体访问 HDFS 数据。(用户仍然可以正常验证和访问元数据。)将 EnableHCatImpersonation 配置参数设置为 0。Vertica 主体必须具有对底层 HDFS 文件的读取访问权限。
-
如果 Hive 使用 Ranger 来管理授权,并且 Vertica 用户对底层 HDFS 文件具有读取访问权限,则您可以使用用户模拟。验证 EnableHCatImpersonation 配置参数是否设置为 1(默认值)。相反,您可以禁用用户模拟并授予 Vertica 主体对 HDFS 文件的读取访问权限。
-
如果 Hive 使用 Sentry 或 Ranger,则 HCatalog 连接器必须使用 HiveServer2(默认设置)。WebHCat 不支持授权服务。
-
如果 Hive 不使用授权服务,或者如果您使用 WebHCat 而不是 HiveServer2 连接到 Hive,则 HCatalog 连接器以当前用户身份访问 Hive。验证 EnableHCatImpersonation 是否设置为 1。所有用户都必须具有对底层 HDFS 文件的读取访问权限。
此外,请确保在 Hadoop 配置文件(在大多数发行版中为 core-site.xml)中启用所有的 Hadoop 组件,以模拟 Vertica 用户。要做到这一点,最简单的方法是,使用通配符为所有主机上和所有组中的所有用户设置 proxyuser 属性。有关说明,请查阅您的 Hadoop 文档。确保在运行 hcatUtil 之前设置此属性(请参阅为 HCatalog 配置 Vertica)。
委托令牌
您可以将委托令牌用于会话,如自带您的委托令牌中所述。使用 HCatalog 连接器时,您指定两个委托令牌,一个用于数据,一个用于元数据。元数据令牌与 Hive 架构相关联。有关如何指定这两个委托令牌的信息,请参阅 HadoopImpersonationConfig 格式。
验证安全配置
要验证 HCatalog 连接器是否可以访问 Hive 数据,请使用 HCATALOGCONNECTOR_CONFIG_CHECK 函数。
有关测试配置的详细信息,请参阅验证 HDFS 配置。