HDFS 存储位置如何存储数据
Vertica 将数据存储在 HDFS 上的存储位置与它在 Linux 文件系统中存储数据的方式相似。如果您在 HDFS 上创建存储位置,Vertica 会将容纳其数据的 ROS 容器存储在 HDFS 上。您可以选择让哪些数据使用 HDFS 存储位置:从仅单个表或分区的数据到数据库的所有数据。
当 Vertica 从 HDFS 存储位置读取数据或向 HDFS 存储位置写入数据时,存储或检索该数据的节点会直接连接 Hadoop 群集以传输数据。如果一个单 ROS 容器文件拆分到多个 HDFS 节点,Vertica 节点将连接到每个节点。Vertica 节点将检索文件片段,然后重新组合文件。由于每个节点直接从来源提取其自己的数据,因此将并行传输数据,从而提高传输效率。让 Vertica 节点直接检索文件拆分片段还可以降低对 Hadoop 群集的影响。
您可以在 HDFS 上存储什么
请用 HDFS 存储位置只存储数据。您不能在 HDFS 存储位置中存储编录信息。
当心
虽然可以使用 HDFS 存储位置临时存储数据,但您千万不要这样做。将 HDFS 用于临时存储将导致严重的性能问题。HDFS 存储位置不能执行的操作
由于 Vertica 使用存储位置以专用格式存储 ROS 容器,因此 MapReduce 和其他 Hadoop 组件无法访问 HDFS 中存储的 Vertica ROS 数据。切勿允许具有 HDFS 访问权限的其他程序写入到 ROS 文件。在外部对这些文件所做的任何修改均可能导致数据损坏和丢失。应用程序必须使用 Vertica 客户端库来访问 Vertica 数据。如果您想与其他 Hadoop 组件共享 ROS 数据,可以将其导出(请参阅文件导出)。