为共置群集配置 Hadoop

如果让 Vertica 共置于任何 HDFS 节点,那么有一些额外的配置要求。

Hadoop 配置参数

为获得最佳性能,请使用指定的最小值设置以下参数:

WebHDFS

Hadoop 有两种服务可为 HDFS 提供 Web 访问权限:

  • WebHDFS

  • httpFS

对于 Vertica,您必须使用 WebHDFS 服务。

YARN

YARN 服务在较新版本的 Hadoop 中提供。它为 Hadoop 群集执行资源管理。将 Vertica 共置于由 YARN 管理的 Hadoop 节点时,您必须在 YARN 中进行一些更改。

Vertica 建议在共享节点上为 Vertica 留出至少 16GB 的内存。预留更多内存将带来性能提升。如何执行此操作取决于您的 Hadoop 发行版:

  • 如果您使用 Hortonworks,创建一个 "Vertica" 节点标签,然后将其分配给运行 Vertica 的节点。

  • 如果您使用 Cloudera,请启用并配置静态服务池。

有关详细信息,请查阅 Hadoop 发行版的文档。或者,您可以禁用共享节点上的 YARN。

Hadoop Balancer

Hadoop Balancer 可在整个 HDFS 范围内重新分配数据块。此功能对于许多 Hadoop 服务都非常有用。但对于 Vertica 而言,此功能可能会在某些条件下降低性能。

如果您使用 HDFS 存储位置,Hadoop Load Balancer 可能会将数据从正在对其进行操作的 Vertica 节点上移走,从而降低性能。如果 Vertica 没有在所有 Hadoop 节点上运行,读取 ORC 或 Parquet 文件时也有可能发生这种情况。(如果您使用独立的 Vertica 和 Hadoop 群集,所有 Hadoop 访问均通过网络实现,而且性能成本不太明显。)

为了避免在整个 HDFS 群集内进行不必要的数据块移动,请考虑将 Vertica 节点排除在再平衡以外。请参阅 Hadoop 文档,以了解如何执行此操作。

复制因子

默认情况下,HDFS 存储每个数据块的三个副本。Vertica 通常会被设置为通过 K-Safety 存储每个数据项的两个副本。因此,将复制因子降低到 2 不但可以节省空间,还能提供数据保护。

要降低 HDFS 存储的副本数量,请按照对 HDFS 存储位置进行故障排除中的说明,设置 HadoopFSReplication。

用于非 HDFS 用途的磁盘空间

您还需要为非 HDFS 用途留出一些磁盘空间。要使用 Ambari 预留磁盘空间,将 dfs.datanode.du.reserved 设置为 hdfs-site.xml 配置文件中的一个值。

设置此参数可为 Vertica 需要的非 HDFS 文件保留空间。