HDFS 存储位置的要求
当心
如果您使用 HDFS 存储位置,则在启动 Vertica 时 HDFS 数据必须可用。HDFS 群集必须可以运行,且 ROS 文件必须存在。如果您已移动数据文件,或者它们已损坏,或者 HDFS 群集没有响应,则 Vertica 无法启动。要将 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 一起使用,请执行以下附加步骤:
-
为每个 Vertica 节点创建 Kerberos 主体,如将 Kerberos 与 Vertica 结合使用中所述。
-
授予所有节点主体对将用作存储位置的 HDFS 目录的读写权限。
如果您计划使用 vbr
来备份和还原位置,请参阅备份和还原 HDFS 存储位置的要求中的其他要求。
将 HDFS 存储位置添加到新节点
如果将节点添加到 Vertica 群集中,它们不会自动拥有对现有 HDFS 存储位置的访问权限。您必须使用 CREATE LOCATION 语句,为新节点手动创建存储位置。请不要在此语句中使用 ALL NODES 选项,而应该使用 NODE 选项提供新节点的名称,以告知 Vertica 只有该节点需要添加共享位置。
当心
您必须手动创建存储位置。否则,新节点将使用默认存储策略(通常为本地 Linux 文件系统上的存储)来存储数据,而其他节点会将数据存储在 HDFS 中。其结果是,该节点可能会耗尽磁盘空间。请考虑一个借助于以下语句在三节点群集上创建的 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 存储位置。