前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive作业产生的临时数据占用HDFS空间大问题处理

Hive作业产生的临时数据占用HDFS空间大问题处理

作者头像
Fayson
发布2018-11-16 13:14:49
7.2K1
发布2018-11-16 13:14:49
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

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作业临时及目录

由于Hive客户端的作业异常退出客户端无法正常的清理HDFS的临时目录,从而导致临时数据文件占用了大量的HDFS空间。因此,需要在Hive作业临时目录中删除不需要的目录和已完成作业的目录文件。

注意:清理临时Hive作业产生的临时目录时,不能删除任何正在运行的Hive作业这样可能会导致作业运行失败。只可以删除不再与当前正在执行的Hive作业相关联的文件和目录。

1.创建一个定时清理作业的脚本hive_clean.sh内容如下:

代码语言:javascript
复制
[root@cdh3 clean]# vim hive-clean.sh 
#!/bin/bash

kinit -kt /opt/cloudera/clean/hdfs.keytab hdfs/cdh3.fayson.com@FAYSON.COM

yarn jar /opt/cloudera/parcels/CDH/lib/solr/contrib/mr/search-mr-*-job.jar org.apache.solr.hadoop.HdfsFindTool -find '/tmp/hive/' -type d -name '*' -mtime +7 | xargs hdfs dfs -rm -r -f -skipTrash

(可左右滑动)

2.将hive-clean.sh脚本放在/opt/cloudera/clean目录下

注意:Fayson的集群启用了Kerberos,所以这里使用了hdfs用户的keytab,确保执行HDFS命令时有权限删除不用用户创建的临时文件和目录。

3.在Linux中配置crontab定时任务,脚本如下:

代码语言:javascript
复制
[root@cdh3 ~]# chmod +x /opt/cloudera/clean/hive-clean.sh 
[root@cdh3 ~]# crontab -e
*/1 * * * * /opt/cloudera/clean/hive-clean.sh > /opt/cloudera/clean/clean.log 2>&1 &

(可左右滑动)

这里配置的crontab为每分钟执行一次脚本可以将执行频率调整至1天即“* * */1 * *”

4.查看执行日志

4

总结

1.Hive作业在运行时会将临时或中间结果存储HDFS,如果Hive客户端作业异常退出会导致HDFS上存储的临时数据不能被清除而导致HDFS空间被占用。

2.可以通过创建定时任务定期的将Hive作业的临时文件和目录删除

3.清理Hive作业临时文件和目录时需要注意,不能将正在运行的作业文件和目录清除,否则会导致作业运行失败。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档