在Hadoop的HDFS数据保留(Data retention in Hadoop HDFS)

2019-10-23 11:35发布

我们有在HDFS超过100TB的数据Hadoop集群。 我想删除比某些蜂巢表13周龄以上的数据。

是否有任何工具或方式我可以做到这一点?

谢谢

Answer 1:

要删除的数据旧,然后在一定时间范围内,你有几种选择。

首先,如果蜂巢表按日期分区,你可以简单地丢弃蜂巢内的分区,并删除其基本目录。

第二个选择是运行一个INSERT到一个新的表,筛选出使用时间戳(如果可用)的旧数据。 这可能不是一个好的选择,因为你有100TB的数据。

第三个选择是递归地列出数据目录为您的蜂巢表。 hadoop fs -lsr /path/to/hive/table 。 这将输出文件及其创建日期的列表。 你可以把这个输出,提取日期和比较对您想保留的时间框架。 如果,你想保留的文件是旧的,运行hadoop fs -rm <file>就可以了。

第四选择是将抓住的FsImage的副本: curl --silent "http://<active namenode>:50070/getimage?getimage=1&txid=latest" -o hdfs.image接着把它变成一个文本文件。 hadoop oiv -i hdfs.image -o hdfs.txt 。 该文本文件将包含HDFS的文本表示,同什么hadoop fs -ls ...将返回。



文章来源: Data retention in Hadoop HDFS
标签: hadoop hdfs