数据治理-HDFS废弃文件、Hive废弃表检测与清理

1、背景

废弃下线的业务,直接在调度系统下线了相应的调度任务,而大量历史数据仍然残留,需要清除。
去年集群迁移,导致很多表有HDFS数据但Hive上没有元数据,需要清除。

2、思路

① 扫描HDFS目录,到分区深度(比如/user/hive/warehouse/test.db/hdfs_audit/pt=20200416,深度为6)

② 采集HDFS audit log(注意过滤扫描HDFS目录时产生的脏日志)

③ 给audit log和HDFS目录建外部表,互相关联去重,获得HDFS近期未访问的文件列表。

④ 将Hive metastore若干元数据表抽取到Hive中,进行关联,获取各个表和分区最近访问的时间戳。

⑤ 将③和④获得的结果表进行关联,获得Hive废弃表及其最近一次访问时间戳。
(此处获得了Hive需要清理的表,注意特殊情况:如果调度平台上的SQL扫描了一张废弃表不存在的分区,在Hive元数据和HDFS audit log都不会有任何记录,但如果将表删了,调度任务则会报错。因此需要将这些任务找出来,在优化SQL后进行Hive废弃表的清理)

⑥ 给Spark、Hive和Presto等查询引擎增加preAnalyze Hook,持久化所有查询记录。
(这边只需用调度平台的SQL查询记录即可)

⑦ 将⑤和⑥的结果表进行关联,获得调度系统上扫描空分区的任务,供算法和数仓优化SQL。

3、具体实现

HDFS目录扫描

Flume采集HDFS audit log日志至HDFS

③ 建ods.ods_hdfs_audit_log_d外部表:

CREATE EXTERNAL TABLE `ods_hdfs_audit_log_d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值