Hive 产生大量的临时文件(转载)

标签: hive

  • Hive 产生大量的临时文件

    背景

    收到磁盘告警后,第一时间查看hdfs容量趋势变化,下图中红色圈起来的部分,因为事情发生在昨天:

    yy

    如上,当时看到hdfs的整体容量是突增起来的,而不是主键增长起来的,然后和业务确定了近期的插入量并不大后,就基本可以确定应该是hadoop本身出问题了,而不是确实有那么大的量产生,于是查看下到底是什么占用了这么大的空间:

    如上,我发现 /tmp 目录占了很大的空间,继续深入查看:

    如上,是hive的临时目录占了很多空间,那么里面存的都是什么呢 ?

    如上,存的都是一些编码格式的文件,小的几十K,大的几个G,经网上查阅后发现,在application 运行过程中会产生一些中间表(HIVE默认就存放在 /tmp 目录下,如果是CDH,则就是 /tmp/hive/hive),如果某些application在运行过程中由于某些原因失败了,则这些临时表不会被回收删除。 我们可以设置  hive.exec.compress.intermediate 参数来使得这部分中间结果压缩。

    或者是可以删除那些时间比较久的文件,可以下面的脚本方式修改进行:

    如上,我们在删除的时候用了 -skipTrash 参数,此参数这里稍作解释一下:

    HDFS 会为每一个用户目录下创建一个回收站目录,即:/user/username/.Trash。比如hive用户:

    每一个被执行删除的文件和目录,都会有一个回收周期(fs.trash.interval)。在这个回收周期内,文件不会立即删除,而是被移动到这个回收站目录下面,如果用户发现误删除,可以进行恢复,直接mv回去就可以。当回收周期到达时,HDFS就会将这个文件/目录彻底删除。

    CDH下的默认相关配置如下:

    yy

    在HDFS内部的具体实现就是在NameNode中开启了一个后台线程 Emptier,这个线程专门管理和监控系统回收站下面的所有文件/目录,对于已经超过生命周期的文件/目录,这个线程就会自动的删除它们,不过这个管理的粒度很大。Emptier每隔 fs.trash.interval 分钟就清空一次用户回收站。即先检查每个用户回收站目录,然后删除寿命超过 fs.trash.interval 的目录,最后将当前存放删除的目录 /user/用户名/.Trash/current 重命名为一个 /user/用户名/.Trash/yyMMddHHmm。

    如下,current 是当前使用的,每到删除时间,删除超时的最老目录,将当前的currnt重命名为日期时间名,然后新建一个current:

    如果想删除的时候避免回收站这一步,可以在删除的时候指定  -skipTrash 参数。

     

     

Where amazing happened

人应该活在醉梦中? 潇洒的优雅般狂野。
尽兴能有那么几夜? 还不快焦虑式体验。

昼夜 , 经典 ,随意 , 但不失庄严。
心悸 , 纠结 ,孤独 , 都随风寂灭。

漆黑的泉水中映出一轮古朴的月,
照在幽静树林中那一缕青衫的聂小倩。

孤独的夜曲声将思绪卷入一场穿越,
斑驳的树叶揭穿我自欺欺人的谎言。

让我看清你双眼,明媚之中有画面。

There will be a miracle .

    </div><div id="calendar-2" class="widget widget_calendar"><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar">
<caption>2018年七月</caption>
<thead>
<tr>
    <th scope="col" title="星期一">一</th>
    <th scope="col" title="星期二">二</th>
    <th scope="col" title="星期三">三</th>
    <th scope="col" title="星期四">四</th>
    <th scope="col" title="星期五">五</th>
    <th scope="col" title="星期六">六</th>
    <th scope="col" title="星期日">日</th>
</tr>
</thead>

<tfoot>
<tr>
    <td colspan="3" id="prev"><a href="http://www.foreverlakers.com/2018/06/">« 6月</a></td>
    <td class="pad">&nbsp;</td>
    <td colspan="3" id="next" class="pad">&nbsp;</td>
</tr>
</tfoot>

<tbody>
<tr>
    <td colspan="6" class="pad">&nbsp;</td><td><a href="http://www.foreverlakers.com/2018/07/01/" aria-label="于2018年7月1日上发布的文章">1</a></td>
</tr>
<tr>
    <td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td><a href="http://www.foreverlakers.com/2018/07/07/" aria-label="于2018年7月7日上发布的文章">7</a></td><td>8</td>
</tr>
<tr>
    <td>9</td><td id="today">10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td>
</tr>
<tr>
    <td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td>
</tr>
<tr>
    <td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td>
</tr>
<tr>
    <td>30</td><td>31</td>
    <td class="pad" colspan="5">&nbsp;</td>
</tr>
</tbody>
</table></div></div>  </div>        </div>
版权声明:本文为weixin_38655836原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38655836/article/details/80990267

智能推荐

更改springboot启动拼成的字母

1.更改springboot启动拼成的字母 其实很好改,只需要在resources下新建一个txt文件就可以,命名为banner.txt,那这种字符该怎么拼出来呢,下面推荐一个网址,有这种工具 传送门 2.集成...

Node.js安装配置

好久都没更新博客了,今天心血来潮,决定是时候更新一篇了,首先我们来认识一下node.js。 什么是node.js? 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的...

RocketMQ之双Master集群搭建笔记记录

一:RocketMQ双master集群部署 服务器环境(我采用的虚拟机,centos6 .5【特别注意:安装的虚拟机centos系统一定得是64位的,32位的会启动不起来。即便起来了也会有很多问题,深坑勿踩】)  ip       用户名    密码        角色     模式 192.168.197.101   root        nameServer1,brokerServer1  ...

蓝桥杯试题集-基础练习题-数列特征(Java)

//做题笔记,仅自己看得懂 题目: 正确姿势:...

多线程爬取4k超高清美图壁纸

多线程爬取4k美图壁纸 前言:看完此篇文章你可以更加深入的了解多线程的使用,并且最重要的你能够下载你自己想要的超高清4k壁纸 爬取结果: 1. 分析网站 要爬取的url :http://pic.netbian.com/ a) 判断网页是动态加载还是静态加载页面。右击查看网页源代码,按Ctrl + f在源代码中搜索网站的详情页地址,从而判断整个网页是静态加载的 b) 明确爬取的目标。我们要爬取的目标...

猜你喜欢

elementUI-添加自定义图标

elementui的小图标有限,跟UI给的不一样,这个时候咋办呢?百度走起。。。。参考了两篇博主分享的 自定义elementui中的图标 和 建立图标库,这里主要用到第一种 实际中: elementUI导航栏 具体代码: 汉字转换Unicode编码: 直接打开控制台: 汉字.chatCodeAt().toString(16); 然后回车; 至于三角形的图标,我直接把箭头的 unicode 值改成了...

[Linux]——文件缓冲区

文件缓冲区 提到文件缓冲区这个概念我们好像并不陌生,但是我们对于这个概念好像又是模糊的存在脑海中,之间我们在介绍c语言文件操作已经简单的提过这个概念,今天我们不妨深入理解什么是文件缓冲区。 为什么需要文件缓冲区 当我们在程序中写下一条printf语句时,我们希望将这条语句的内容打印到屏幕上。但是如果你将语句放在循环中,难道你执行一次循环那么操作系统就要打印一次这条数据么?答案当然不是 我们对于程序...

基于FPGA的IIC协议详解——EEPROM控制器(1)

IIC协议举例 常用IIC协议使用地方 常见IIC协议的注意点 24LC64芯片读写命令的时序图 eeprom控制器的系统框图 时序图设计 代码设计 EEPROM控制器测试模块的代码 结束语 常用IIC协议使用地方 熟悉一个协议一定要知道这个协议应该用到什么地方,IIC协议作为飞利浦公司定义的一个慢速传输协议,常用于: 1、芯片寄存器的配置; 2、eeprom的读写; 本次实验我们将使用eepro...

ssm 工程简易搭建(idea 工具下)

现在都流行springboot了,大部分都给你配合了了,可以快速开发。但是今天我们回顾一下ssm的搭建,其实也挺简单的,比刚入门那会觉得简单多了。 这个先讲几点: 1.开始搭建前,idea 自己要配置maven 和tomcat和jdk ,这里就不讲了。 2.为了简化配置,我们按照“约定优于配置”的原则(这种原则在sprigboot项目里面特别明显),启动项目时,项目有个文件...

oracle简单视图read only、check option和默认权限的异同(相对于DML语句)

视图分为俩类: 简单视图:   视图所代表的sql中如果没有group by语句,   没有组函数,查询的只有一张表,那么这样的视图就是简单视图. 复杂视图   视图所代表的sql中如果有group by语句,   或者有组函数,或者查询的是多张表,那么这样的视图就是复杂视图. s_emp表格属性 默认权限 1.可以插入不满足where条件的数据,原表也会更...