前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0653-5.16.1-Hive Staging目录占用大量HDFS空间问题分析

0653-5.16.1-Hive Staging目录占用大量HDFS空间问题分析

作者头像
Fayson
发布2019-06-17 18:32:05
2.6K0
发布2019-06-17 18:32:05
举报
文章被收录于专栏:Hadoop实操Hadoop实操

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

Fayson的github: https://github.com/fayson/cdhproject

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

1

问题现象

  • 测试环境

1.Redhat7.4

2.CDH5.16.1

在HDFS上有许多Hive Staging目录,占用了大量的空间,有些目录占用的空间甚至比原始表还大,如下截图显示:

2

异常重现及分析

1.使用beeline、hive、spark-shell等多种方式执行Hive SQL语句验证产生的hive staging目录是否不会被清除,结果发现在SQL执行结束后产生的staging文件均会自动被移除。

2.使用Hue上的Hive Editor来进行验证,发现执行的SQL产生的staging目录在SQL执行完成后并不会被清除,在Hue上执行一个Hive的Insert语句

使用hadoop命令看到在相应表下生成的hive-staging_hive_xxx的临时目录一直存在并未因为SQL执行完成而清除掉。

根据上述分析发现,出现上述问题的原因主要是由于在Hue上使用Hive Editor执行查询导致。Hue为了让用户能够查看历史执行SQL及返回结果,所以必须确保每个查询的结果是可以打开的。

因此,Hue上在查询执行期间创建的staging目录,Hive的清除事件永远不会被调用,也就导致了所有通过Hue运行的查询创建的staging目录永远不会被删除。

接下来针对上述问题进行提出两种解决方案,具体看如下说明。

3

问题解决

3.1

解决方案一

通过设置用户离开Hive的查询界面时强制Hue关闭查询,可以通过如下方式操作:

1.登录CM进入Hue的配置界面

2.在搜索栏输入“hue*.ini”在配置项中增加如下内容

代码语言:javascript
复制
[beeswax]
close_queries=true

3.完成上述配置后重启Hue服务即可

注意:上述解决方法也存在弊端,用户无法再通过Hue查看历史执行的SQL语句及查询结果,且用户在执行查询时离开Hive的编辑页面,则正在执行的查询也会关闭(查询不会后台运行)。

3.2

解决方案二

通过设置HiveServer2的以下参数来控制会话和操作/查询的超时时间。

代码语言:javascript
复制
hive.server2.session.check.interval = 1 hour
hive.server2.idle.operation.timeout = 1 day
hive.server2.idle.session.timeout = 3 days

hive.server2.idle.operation.timeout:表示执行的操作及查询超过1天将会被关闭。

参数hive.server2.idle.operation.timeout:调试HiveServer2会话在空闲状态超过3天将会关闭。

hive.server2.session.check.interval:每个小时检查一次。

1.登录CM进入Hive的配置界面

2.根据自己当前集群使用情况和查询时间适当的修改这些值,如下截图为Fayson测试修改的参数

4

总结

1.在Hue上的Hive编辑器执行SQL查询时,由于Hue上需要保存历史查询SQL及结果,所以会导致执行SQL过程中查询的staging目录没有被Hive的清除事件删除。

2.可以通过修改Hue的配置,指定close_queries=true,当用户离开Hive的编辑器页面后Hue会强制关闭查询,该解决方法会有一定的弊端。

3.也可以通过配置HiveServer2的会话、操作/查询的超时时间来关闭查询,该方法可以根据集群的使用情况及查询时间适当的调整。

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

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

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

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档