在 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 发行版的文档。
注意
Hadoop 当前不支持 IPv6 网络地址。您的群集必须使用 IPv4 地址访问 HDFS。如果您选择对数据库群集中的主机使用 IPv6 网络地址,请确保它们可以访问 IPv4 地址。实现此访问的一种方法是为您的 Vertica 主机分配一个 IPv4 地址以及一个 IPv6 地址。要安装 Vertica:
-
通过查看 在安装 Vertica 之前 部分中的所有内容,确保节点配置正确。
-
使用
install_vertica
脚本验证节点是否已正确配置并在所有节点上安装 Vertica 二进制文件。按照使用命令行安装所述步骤安装 Vertica。注意
这些安装步骤与您在企业模式下安装 Vertica 的步骤相同。Eon 模式和企业模式本地数据库之间的区别在于创建数据库的方式不同,而不是安装 Vertica 软件的方式不同。
步骤 3:创建引导文件
在创建 Eon 模式内部部署数据库之前,您必须创建一个引导文件来指定创建数据库所需的参数。如果使用的是 Kerberos、高可用性名称节点或 TLS(线路加密),则此步骤适用。
-
在将运行 admintools 以创建数据库的 Vertica 节点上,使用文本编辑器创建一个文件。您可以随意命名此文件。在这些步骤中,将它命名为
bootstrap_params.conf
。此文件的位置并不重要,只要它可供用于创建数据库的 Linux 用户(通常是 dbadmin)读取即可。 -
向此文件中添加以下各行。HadoopConfDir 通常设置为
/etc/hadoop/conf
;KerberosServiceName 通常设置为vertica
。HadoopConfDir = config-path KerberosServiceName = principal-name KerberosRealm = realm-name KerberosKeytabFile = keytab-path
如果不使用 HA 名称节点(例如在测试环境中),则可以忽略 HadoopConfDir 并在指定公共存储位置时使用显式名称节点主机和端口。
-
保存此文件并退出编辑器。
在每个节点上,为存储库存储路径选择或创建一个目录。您为存储库存储路径参数提供的目录必须:
-
在群集中的所有节点上具有相同的路径(即
/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'