HDFS 存储位置的要求

要将 Vertica 的数据存储在 HDFS 上,请执行以下操作:

  • 确认您的 Hadoop 群集已启用 WebHDFS。

  • 确认 Vertica 群集中的所有节点均可连接到 Hadoop 群集中的所有节点。两个群集之间的任何防火墙都必须允许在 HDFS 使用的端口上建立连接。

  • 在 HDFS 群集不安全时,确认您有一个 Hadoop 用户,其用户名与 Vertica 数据库超级用户(通常名为 dbadmin)的名称匹配。该 Hadoop 用户必须具有您希望 Vertica 用于存储其数据的 HDFS 目录的读写权限。

  • 确认在 HDFS 群集使用 Kerberos 身份验证时:

    • 您拥有 Vertica 的 Kerberos 主体,该主体对将用于存储位置的 HDFS 目录具备读写权限。有关说明,请参阅下面的 Kerberos

    • Kerberos KDC 正在运行。

  • 确认您的 HDFS 群集具有足以容纳 Vertica 数据的存储空间。有关详细信息,请参阅下面的空间要求

  • 确认您在支持 HDFS 的存储位置存储的数据不会将数据库大小扩展到超出 Vertica 许可证中规定的任何数据限额。Vertica 将支持 HDFS 的存储位置中存储的数据视为许可证规定的任何数据限额的一部分。有关详细信息,请参阅《管理员指南》中的管理许可证

备份/还原还有其他要求

空间要求

如果 Vertica 数据库属于 K-safe,基于 HDFS 的存储位置包含您在该位置中存储的数据的两个副本。一个副本为主投影,另一个为同伴投影。如果您已启用 HDFS 的数据冗余功能,Hadoop 会将这两个投影存储多次。这种重复可能看似有些过多。但它与 RAID 1 级或更高级别存储主投影和伙伴实例投影的冗余副本的方式类似。冗余副本还可通过启用多个节点处理文件请求,帮助提高 HDFS 的性能。

验证 HDFS 安装有足够的空间可用于冗余存储 K-safe 数据的主投影和同伴投影。您可以通过设置 HadoopFSReplication 配置参数,调整 HDFS 存储的副本数量。有关详细信息,请参阅对 HDFS 存储位置进行故障排除

Kerberos

要将 HDFS 中的存储位置与 Kerberos 一起使用,请执行以下附加步骤:

  1. 为每个 Vertica 节点创建 Kerberos 主体,如将 Kerberos 与 Vertica 结合使用中所述。

  2. 授予所有节点主体对将用作存储位置的 HDFS 目录的读写权限。

如果您计划使用 vbr 来备份和还原位置,请参阅备份和还原 HDFS 存储位置的要求中的其他要求。

将 HDFS 存储位置添加到新节点

如果将节点添加到 Vertica 群集中,它们不会自动拥有对现有 HDFS 存储位置的访问权限。您必须使用 CREATE LOCATION 语句,为新节点手动创建存储位置。请不要在此语句中使用 ALL NODES 选项,而应该使用 NODE 选项提供新节点的名称,以告知 Vertica 只有该节点需要添加共享位置。

请考虑一个借助于以下语句在三节点群集上创建的 HDFS 存储位置:

=> CREATE LOCATION 'hdfs://hadoopNS/vertica/colddata' ALL NODES SHARED
    USAGE 'data' LABEL 'coldstorage';

=> SELECT SET_OBJECT_STORAGE_POLICY('SchemaName','coldstorage');

以下示例显示了如何将存储位置添加到新群集节点:

=> CREATE LOCATION 'hdfs://hadoopNS/vertica/colddata' NODE 'v_vmart_node0004'
   SHARED USAGE 'data' LABEL 'coldstorage';

当您创建 HDFS 存储位置时,群集中的所有活动备用节点均将自动创建其自己的位置实例。而当备用节点替代出现故障的节点后,它会采用 HDFS 存储策略,使用自己的位置实例存储对象数据。请将存储位置创建后添加的备用节点视为任何其他新节点。您必须手动定义 HDFS 存储位置。