在 HDFS 上使用公共存储安装 Eon 模式内部部署数据库

步骤 1:满足 HDFS 环境先决条件

要将 HDFS 用作 Eon 模式数据库的公共存储位置,必须:

  • 运行 WebHDFS 服务。

  • 如果使用的是 Kerberos,请按照 Kerberos 身份验证中所述为 Vertica(系统)用户创建 Kerberos 主体,并授予它对 HDFS 中用来放置公共存储的位置的读写访问权限。Vertica 将始终使用此系统主体访问公共存储。

  • 如果使用的是高可用性名称节点或 swebhdfs,请按照配置 HDFS 访问中所述将 HDFS 配置文件分发到所有 Vertica 节点。即使不针对公共存储使用 hdfs 架构,此步骤也是必要步骤。

  • 如果使用的是 swebhdfs(线路加密)而不是 webhdfs,请使用 Vertica 主机信任的证书配置 HDFS 群集,并在 hdfs-site.xml 中设置 dfs.encrypt.data.transfer。

  • Vertica 对静态加密没有其他要求。有关如何为 WebHDFS 配置静态加密的信息,请参阅 Hadoop 发行版的文档。

要安装 Vertica:

  1. 通过查看 在安装 Vertica 之前 部分中的所有内容,确保节点配置正确。

  2. 使用 install_vertica 脚本验证节点是否已正确配置并在所有节点上安装 Vertica 二进制文件。按照使用命令行安装所述步骤安装 Vertica。

步骤 3:创建引导文件

在创建 Eon 模式内部部署数据库之前,您必须创建一个引导文件来指定创建数据库所需的参数。如果使用的是 Kerberos、高可用性名称节点或 TLS(线路加密),则此步骤适用。

  1. 在将运行 admintools 以创建数据库的 Vertica 节点上,使用文本编辑器创建一个文件。您可以随意命名此文件。在这些步骤中,将它命名为 bootstrap_params.conf。此文件的位置并不重要,只要它可供用于创建数据库的 Linux 用户(通常是 dbadmin)读取即可。

  2. 向此文件中添加以下各行。HadoopConfDir 通常设置为 /etc/hadoop/conf;KerberosServiceName 通常设置为 vertica

    HadoopConfDir = config-path
    KerberosServiceName = principal-name
    KerberosRealm = realm-name
    KerberosKeytabFile = keytab-path
    

    如果不使用 HA 名称节点(例如在测试环境中),则可以忽略 HadoopConfDir 并在指定公共存储位置时使用显式名称节点主机和端口。

  3. 保存此文件并退出编辑器。

在每个节点上,为存储库存储路径选择或创建一个目录。您为存储库存储路径参数提供的目录必须:

  • 在群集中的所有节点上具有相同的路径(即 /home/dbadmin/depot)。

  • 可由 dbadmin 用户读写。

  • 具有足够的存储空间。默认情况下,Vertica 将包含该目录的文件系统空间的 60% 用于存储库的存储。您可以使用 create_db 命令中的 --depot-size 实参来限制存储库的大小。有关为存储库选择大小的准则,请参阅为 Eon 模式配置 Vertica 群集

如果存储库路径不存在,admintools create_db 工具将尝试为您创建存储库路径。

步骤 5:创建 Eon 内部部署数据库

使用 admintools create_db 工具创建数据库。必须向此工具传递以下实参:

一些常见的可选实参包括:

要查看 create_db 工具的所有实参,请运行以下命令:

admintools -t create_db --help

以下示例演示了如何创建名为 verticadb 的三节点数据库,指定存储库将存储在 dbadmin 用户的主目录中。

$ admintools -t create_db -x bootstrap_params.conf \
  --communal-storage-location=webhdfs://mycluster/verticadb \
  --depot-path=/home/dbadmin/depot  --shard-count=6 \
  -s vnode01,vnode02,vnode03 -d verticadb -p 'YourPasswordHere'

如果不使用 HA 名称节点(例如在测试环境中),则可以使用显式名称节点主机和端口作为 --communal-storage-location,如下例所示。

$ admintools -t create_db -x bootstrap_params.conf \
  --communal-storage-location=webhdfs://namenode.hadoop.example.com:50070/verticadb \
  --depot-path=/home/dbadmin/depot  --shard-count=6 \
  -s vnode01,vnode02,vnode03 -d verticadb -p 'YourPasswordHere'