移除 HDFS 存储位置
移除 HDFS 存储位置的步骤与移除标准存储位置的步骤类似:
-
通过使用 SET_OBJECT_STORAGE_POLICY 更改每个对象的存储位置,从 HDFS 存储位置移除任何现有数据。或者,您可以使用 CLEAR_OBJECT_STORAGE_POLICY。由于 Tuple Mover 不经常运行,请将 enforce-storage-move 参数设置为
true
以立即进行更改。 -
使用 RETIRE_LOCATION,在定义了该存储位置的每个主机上停用该位置。将 enforce-storage-move 设置为
true
。 -
使用 DROP_LOCATION 删除每个节点上的位置。
-
可以选择将快照和文件从该存储位置的 HDFS 目录中移除。
-
执行完整的数据库备份。
有关更改存储策略、更改使用、停用位置和删除位置的详细信息,请参阅管理存储位置。
重要
如果已经备份了要删除的 HDFS 存储位置中的数据,您必须在删除该位置后执行完整数据库备份。如果您不执行完全数据库备份,就将数据库还原到删除该位置前制作的备份,那么您也将还原该位置的数据。从 HDFS 移除存储位置文件
删除 HDFS 存储位置不会自动清理存储该位置文件的 HDFS 目录。也不会删除备份该位置时创建的任何数据文件快照。这些文件不但占用 HDFS 上的磁盘空间,还使该目录无法再次用作 HDFS 存储位置。Vertica 无法在包含现有文件或子目录的目录中创建存储位置。
您必须登录到 Hadoop 群集,才能将文件从 HDFS 中删除。一个替代方案是,使用一些其他的 HDFS 文件管理工具。
移除备份快照
如果您试图移除具有快照的目录,HDFS 将返回以下错误:
$ hdfs dfs -rm -r -f -skipTrash /user/dbadmin/v_vmart_node0001
rm: The directory /user/dbadmin/v_vmart_node0001 cannot be deleted since
/user/dbadmin/v_vmart_node0001 is snapshottable and already has snapshots
作为备份过程的一部分,Vertica 备份脚本将创建 HDFS 存储位置的快照。如果制作了 HDFS 存储位置的备份,您必须在删除目录之前删除快照。
HDFS 将快照存储在名为 .snapshot
的子目录中。您可以使用标准的 HDFS ls
命令列出目录中的快照。
$ hdfs dfs -ls /user/dbadmin/v_vmart_node0001/.snapshot
Found 1 items
drwxrwx--- - dbadmin supergroup 0 2014-09-02 10:13 /user/dbadmin/v_vmart_node0001/.snapshot/s20140902-101358.629
要删除快照,请使用以下命令:
$ hdfs dfs -removeSnapshot directory snapshotname
下面的示例演示了用于删除上个示例中显示的快照的命令:
$ hdfs dfs -deleteSnapshot /user/dbadmin/v_vmart_node0001 s20140902-101358.629
您必须将每个快照从群集中各个主机的目录中删除。删除快照后,您就可以删除存储位置中的目录。
重要
每个快照的名称均基于精确到毫秒的时间戳。节点独立创建其自己的快照。由于它们的快照创建并不同步,快照的名称各不相同。您必须列出各节点的快照目录,以了解其包含的快照的名称。有关管理和移除快照的详细信息,请参阅 Apache 的 HDFS 快照文档。
移除存储位置目录
您可以通过下列任一方法,删除保存存储位置数据的目录:
-
使用 HDFS 文件管理器删除目录。请参阅 Hadoop 发行版的文档,以确定其是否提供文件管理器。
-
使用数据库管理员帐户登录到 Hadoop 名称节点,然后使用 HDFS 的
rmr
命令删除目录。有关详细信息,请参阅 Apache 的文件系统 Shell 指南。
下面的示例从 Linux 命令行使用 HDFS rmr
命令,来删除 HDFS 存储位置目录 /user/dbamin
中剩余的目录。它使用 -skipTrash
标志来强制立即删除这些文件:
$ hdfsp dfs -ls /user/dbadmin
Found 3 items
drwxrwx--- - dbadmin supergroup 0 2014-08-29 15:11 /user/dbadmin/v_vmart_node0001
drwxrwx--- - dbadmin supergroup 0 2014-08-29 15:11 /user/dbadmin/v_vmart_node0002
drwxrwx--- - dbadmin supergroup 0 2014-08-29 15:11 /user/dbadmin/v_vmart_node0003
$ hdfs dfs -rmr -skipTrash /user/dbadmin/*
Deleted /user/dbadmin/v_vmart_node0001
Deleted /user/dbadmin/v_vmart_node0002
Deleted /user/dbadmin/v_vmart_node0003