0


DolphinScheduler无故删除HDFS上的Hive库表目录

亲爱的朋友们,我可爱的同事又搞了个大BUG
待我慢慢道来…
DolphinScheduler大家应该都用过,中国人开源的一个调度工具,类似Azkaban,本次的事情就是在DolphinScheduler上发生的。
据领导描述,某团队负责的某业务数仓上云后,HDFS上的Hive库表目录总是无故被删,他们找不到原因,让我协助处理一下。
本来某业务数仓上云是一个很简单的工作,对于DolphinScheduler上的任务而言,只需要把工作流导出,然后导入到云上的DolphinScheduler,不幸的是XX云上的Sqoop不能用,所以本来用Sqoop的任务需要改成DataX,从而发生了后面的事情。
处理流程:
1.开启HDFS审计
2.日志寻找删库目录操作,没有搜到。因为之前云上环境问题,我已经不相信XX云,现在日志也搜不到,让我更加怀疑是XX云的问题
3.挨个执行任务,每执行完一个看历史数据是否还在
4.定位问题任务,我重复试了几遍,怕自动删除与执行任务时间重合,后来确认就是这个任务问题
5.打印变量(空格看不出来)
6.比对此任务脚本与正常任务区别,没有任何区别
7.注释其它行,定位问题行

hdfs dfs -rm -r -f /user/hive/warehouse/ods.db/${table_name}/*

8.查看审计日志,发现删的不是库目录,而是根目录下的整个/user以及/tmp
9.发现自定义参数中空格
在这里插入图片描述
在这里插入图片描述
不选中根本看不出来空格,就是因为这个空格,导致之前的命令变成

hdfs dfs -rm -r -f /usr/hive/warehouse/ods.db/ods_test /*

形成了 rm -rf /*操作,幸亏该用户权限不大,不然后果更严重。


现在来看,开启HDFS日志审计十分有必要,开始没有直接定位问题是没有想到删的不是库表,而是整个根目录,所以在日志中没有搜到,也幸亏该用户权限不大,只删除了/user和/tmp,没有造成更严重的后果。

标签: hive spark hadoop

本文转载自: https://blog.csdn.net/Dr_Guo/article/details/123225561
版权归原作者 光于前裕于后 所有, 如有侵权,请联系我们删除。

“DolphinScheduler无故删除HDFS上的Hive库表目录”的评论:

还没有评论