温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
Hive作业在运行时会在HDFS的临时目录产生大量的数据文件,这些数据文件会占用大量的HDFS空间。这些文件夹用于存储每个查询的临时或中间数据集,并且会在查询完成时通常由Hive客户端清理。但是,如果Hive客户端异常终止,可能会导致Hive作业的临时或中间数据集无法清理,从而导致Hive作业临时目录占用大量的HDFS空间。本篇文章Fayson主要介绍如何解决清理Hive作业产生的临时文件。
- 测试环境
1.CM和CDH版本为5.15
2
Hive作业临时目录说明
Hive作业在运行时会在HDFS的指定目录下生成作业临时或中间数据集存储目录,此临时目录路径有hive-site.xml配置中的hive.exec.scratchdir参数定义:
- Hive 0.2.0到0.8.0版本中默认值为:/tmp/${user.name}
- Hive0.8.1到0.14.0版本中默认值为:/tmp/hive-${user.name}
- Hive0.14.1及更高版本中默认值为:/tmp/hive/${user.name}
当前Fayson的CDH5.15.0中Hive版本为1.1.0,Hive作业的临时或中间数据集在HDFS的/tmp/hive/${user.name}目录下:

3
清理

本文介绍了Hive作业在HDFS上生成的临时数据占用大量空间的问题,以及如何通过配置定时任务脚本来清理这些数据。Hive的临时目录默认位于`/tmp/hive/${user.name}`,当作业异常终止时,临时文件未被删除。解决方案是创建一个名为`hive_clean.sh`的脚本,并用crontab设置定时任务,以定期删除不再关联的Hive作业文件,注意避免删除正在运行的作业文件,防止作业失败。
最低0.47元/天 解锁文章
1165

被折叠的 条评论
为什么被折叠?



