有一个场景,好比大家公司集群的hdfs的使用率常常快要不够用了,想删除一些就群上的无用数据,某些数据是否被别的目录依赖使用,这个时候咱们就须要解析数据之间的依赖关系,而后从没有下游的数据开始删除,或者设置其生命周期,当某个数据的份数超过其所使用范围,咱们就能够将它认为是无用数据,此数据就能够删掉。sql
由于若是想管理好大数据集群hdfs上的数据合理使用和存在、清理,咱们须要二个基本数据,第一就是目录数据的生命周期,第二就是目录之间的依赖关系。oop
这个就要根据具体的也许须要来设置该目录的生命周期,通常状况下,好比阿里的odps上,表的生命周期是按照天来计算的。可是其实纯粹的按照天来设置生命周期是不那么合理的,好比有的表是每月才产出一份,这时候再按照天来设置生命周期显然不太合理,使用方还要算算那几个月是31天,30天等去计算,其实他们使用数据多是最近产出的多少份数据。由于对于目录来讲,以份为单位来对数据进行生命周期的设置和清理是比较合理的。大数据
声明一下:此处的依赖关系就只限于提交任务到yarn上的mr任务,其余不经过mr任务进行数据导入或者导出的数据须要各自系统去注册数据的血缘依赖关系。咱们这里只讨论提交到yarn上的mr任务产出的数据之间的依赖关系。此处有几个步骤:3d
如何查看hadoop任务跑的sql及任务的输入输出 任务运行列表orm
每一个任务都有运行的参数配置和任务输出结果,好比咱们关心的任务运行的脚本(固然若是不是hive,就没有脚本),任务的输入输出目录关系,咱们均可以看到.cdn
好比咱们想看某个任务的信息,怎么看呢?点击任务id,会跳到任务详情页面,以下图: xml
hive.query.string是指该任务执行的sql语句。 blog
inputformat.inputdir是指该任务的输入路径,多个则以逗号隔开 生命周期
location或者outputformat.dir是指该任务的输出路径,多个则以逗号隔开。 hadoop
你们又什么问题或者疑问欢迎交流,校订。