• Hive 产生大量的临时文件

    2018-07-01 作者:SleepSir

    暂无评论

    背景

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

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

    [root@aly-bigdata-hadoop-client ~]# hadoop fs -du -h / 77.6 M 2.0 G /hbase 124.7 M 297.8 M /kylin 0 0 /system 1.6 T 4.9 T /tmp 1.7 T 5.0 T /user 262.4 G 787.3 G /var
    1
    2
    3
    4
    5
    6
    7

    [ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /
    77.6 M    2.0 G      / hbase
    124.7 M    297.8 M    / kylin
    0          0          / system
    1.6 T      4.9 T      / tmp
    1.7 T      5.0 T      / user
    262.4 G    787.3 G    / var

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

    [root@aly-bigdata-hadoop-client ~]# hadoop fs -du -h /tmp 56 168 /tmp/.cloudera_health_monitoring_canary_files 0 0 /tmp/hadoop-yarn 0 0 /tmp/hbase-staging 1.6 T 4.7 T /tmp/hive 0 0 /tmp/kylin 92.9 G 278.8 G /tmp/logs 153 459 /tmp/partitions_1a3c689d-a2f1-44c7-a1d4-c224ab4df7ec 153 459 /tmp/partitions_9e39fd42-cba4-4dc0-adc9-95e93e9e37cf
    1
    2
    3
    4
    5
    6
    7
    8
    9

    [ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /tmp
    56        168        / tmp / . cloudera_health_monitoring_canary _files
    0        0          / tmp / hadoop - yarn
    0        0          / tmp / hbase - staging
    1.6 T    4.7 T      / tmp / hive
    0        0          / tmp / kylin
    92.9 G    278.8 G    / tmp / logs
    153      459        / tmp / partitions_1a3c689d - a2f1 - 44c7 - a1d4 - c224ab4df7ec
    153      459        / tmp / partitions_9e39fd42 - cba4 - 4dc0 - adc9 - 95e93e9e37cf

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

    [root@aly-bigdata-hadoop-client ~]# hadoop fs -du -h /tmp/hive/hive/ 0 0 /tmp/hive/hive/0030d2fb-eacc-4068-8337-3d989dd8e8f9 0 0 /tmp/hive/hive/00373670-c0f3-4860-9c94-7881395b5818 0 0 /tmp/hive/hive/003eddc2-71c2-416e-b194-7f0780675f42 0 0 /tmp/hive/hive/004792b6-ae5b-49c4-9090-c08f6d40e2b5 0 0 /tmp/hive/hive/0051d4a9-b8cf-4616-a787-d07448bc0359 0 0 /tmp/hive/hive/005bae02-4a05-4e32-872a-ff19787b5ede 0 0 /tmp/hive/hive/0099afb4-7eff-4d16-be77-40e5b1603849 0 0 /tmp/hive/hive/009d4002-e718-41e1-81f8-4b0d64c9e25f 935.7 M 2.7 G /tmp/hive/hive/00bdfa7a-4fe5-4778-a5ec-06fb78b92e51 0 0 /tmp/hive/hive/00c92ea7-7288-4a17-960f-0ba52bfd3bb7 0 0 /tmp/hive/hive/00d63bbc-7287-4e95-a2a8-7f638b958fae 85.5 M 256.4 M /tmp/hive/hive/0162335c-c562-49f8-aa0c-54a835c87680 0 0 /tmp/hive/hive/016f626e-f47c-4368-a459-2fee64e796c2 0 0 /tmp/hive/hive/017cfa83-beda-404a-b211-6264a3735f1a 280.7 K 842.0 K /tmp/hive/hive/018f6e83-92fd-4d55-b670-95264de6f854 0 0 /tmp/hive/hive/02867e9d-bfe5-498d-b5d7-2c6879779439 0 0 /tmp/hive/hive/02adebe7-e46e-4d1f-b3e2-42c210362509 0 0 /tmp/hive/hive/02e14fd7-3035-479a-bd8c-73b19b104c63 0 0 /tmp/hive/hive/02f68c38-3fd7-46df-8fd3-a34c13a20510 0 0 /tmp/hive/hive/03095e0e-81f1-49eb-b90b-331010ab8143 349.4 M 1.0 G /tmp/hive/hive/030cc6d8-e54b-4cce-9e54-0908bdf69345 0 0 /tmp/hive/hive/0316a7b7-36a6-437e-81d1-6b5848926580 0 0 /tmp/hive/hive/0332013a-8af6-4495-82e2-bf9ea95a2586 773.5 M 2.3 G /tmp/hive/hive/0334f6ee-1905-4c84-8fbf-59d573a81e00
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

    [ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /tmp/hive/hive/
    0          0          / tmp / hive / hive / 0030d2fb - eacc - 4068 - 8337 - 3d989dd8e8f9
    0          0          / tmp / hive / hive / 00373670 - c0f3 - 4860 - 9c94 - 7881395b5818
    0          0          / tmp / hive / hive / 003eddc2 - 71c2 - 416e - b194 - 7f0780675f42
    0          0          / tmp / hive / hive / 004792b6 - ae5b - 49c4 - 9090 - c08f6d40e2b5
    0          0          / tmp / hive / hive / 0051d4a9 - b8cf - 4616 - a787 - d07448bc0359
    0          0          / tmp / hive / hive / 005bae02 - 4a05 - 4e32 - 872a - ff19787b5ede
    0          0          / tmp / hive / hive / 0099afb4 - 7eff - 4d16 - be77 - 40e5b1603849
    0          0          / tmp / hive / hive / 009d4002 - e718 - 41e1 - 81f8 - 4b0d64c9e25f
    935.7 M    2.7 G      / tmp / hive / hive / 00bdfa7a - 4fe5 - 4778 - a5ec - 06fb78b92e51
    0          0          / tmp / hive / hive / 00c92ea7 - 7288 - 4a17 - 960f - 0ba52bfd3bb7
    0          0          / tmp / hive / hive / 00d63bbc - 7287 - 4e95 - a2a8 - 7f638b958fae
    85.5 M      256.4 M    / tmp / hive / hive / 0162335c - c562 - 49f8 - aa0c - 54a835c87680
    0          0          / tmp / hive / hive / 016f626e - f47c - 4368 - a459 - 2fee64e796c2
    0          0          / tmp / hive / hive / 017cfa83 - beda - 404a - b211 - 6264a3735f1a
    280.7 K    842.0 K    / tmp / hive / hive / 018f6e83 - 92fd - 4d55 - b670 - 95264de6f854
    0          0          / tmp / hive / hive / 02867e9d - bfe5 - 498d - b5d7 - 2c6879779439
    0          0          / tmp / hive / hive / 02adebe7 - e46e - 4d1f - b3e2 - 42c210362509
    0          0          / tmp / hive / hive / 02e14fd7 - 3035 - 479a - bd8c - 73b19b104c63
    0          0          / tmp / hive / hive / 02f68c38 - 3fd7 - 46df - 8fd3 - a34c13a20510
    0          0          / tmp / hive / hive / 03095e0e - 81f1 - 49eb - b90b - 331010ab8143
    349.4 M    1.0 G      / tmp / hive / hive / 030cc6d8 - e54b - 4cce - 9e54 - 0908bdf69345
    0          0          / tmp / hive / hive / 0316a7b7 - 36a6 - 437e - 81d1 - 6b5848926580
    0          0          / tmp / hive / hive / 0332013a - 8af6 - 4495 - 82e2 - bf9ea95a2586
    773.5 M    2.3 G      / tmp / hive / hive / 0334f6ee - 1905 - 4c84 - 8fbf - 59d573a81e00

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

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

    hadoop=hadoop expired_days=7 now= (date+ ( d a t e + (date +%s)hadoop fs -du /tmp/hive/hive/* | grep 'hive_' | awk '{print 3}’ | while read line; do       #  过滤出 hive_ 开头的文件

    file= 3}’ | while read line; do       #  过滤出 hive_ 开头的文件     file= 3}’ | while read line; do # 过滤出 hive_ 开头的文件file={line##*/} # 得到文件名,比如 hive_2018-06-19_08-02-33_543_5311727044302147693-1 date= {file:5:10}                       # 文件名里的日期,只有hive_开头的才有,所以上面过滤了
        if [[ -n {file:5:10}                       # 文件名里的日期,只有hive_开头的才有,所以上面过滤了    if [[ -n {file:5:10} # 文件名里的日期,只有hive_开头的才有,所以上面过滤了if [[ -n date ]]; then days= ((( ( ( ( (( (now - (date+ ( d a t e + (date +%s -d date))/60/60/24 )) if (( days > days > days > expired_days )); then dir= lineecho“removeexpiredlog l i n e e c h o “ r e m o v e e x p i r e d l o g lineecho “remove expired log dir …” hadoopfs−rm−r−skipTrash h a d o o p f s − r m − r − s k i p T r a s h hadoop fs -rm -r -skipTrash dir #sleep 1 fi fi done

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    hadoop = hadoop
    expired_days = 7
    now = </span><spanclass="crayon−sy">(</span><spanclass="crayon−v">date</span><spanclass="crayon−h"></span><spanclass="crayon−o">+</span><spanclass="crayon−o"> < / s p a n >< s p a n c l a s s =" c r a y o n − s y "> ( < / s p a n >< s p a n c l a s s =" c r a y o n − v "> d a t e < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − o "> + < / s p a n >< s p a n c l a s s =" c r a y o n − o "> <script type="math/tex" id="MathJax-Element-41"> ( date + % s )
    </script> hadoop fs - du / tmp / hive / hive /* | grep ‘hive_’ | awk ‘{print 3}' | while read line; do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;过滤出 hive_ 开头的文件</span></div><div class="crayon-line crayon-striped-line" id="crayon-5b4482365d175336814587-6">&nbsp;</div><div class="crayon-line" id="crayon-5b4482365d175336814587-7"><span class="crayon-c">&nbsp;&nbsp;&nbsp;&nbsp; file= 3}' | while read line; do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;过滤出 hive_ 开头的文件</span></div><div class="crayon-line crayon-striped-line" id="crayon-5b4482365d175336814587-6">&nbsp;</div><div class="crayon-line" id="crayon-5b4482365d175336814587-7"><span class="crayon-c">&nbsp;&nbsp;&nbsp;&nbsp; file= 3}' | while read line; do       #  过滤出 hive_ 开头的文件
     
         file={line##*/ }                          # 得到文件名,比如   hive_2018-06-19_08-02-33_543_5311727044302147693-1
         date = </span><span class="crayon-sy">{</span><span class="crayon-v">file</span><span class="crayon-o">:</span><span class="crayon-cn">5</span><span class="crayon-o">:</span><span class="crayon-cn">10</span><span class="crayon-sy">}</span><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-p"># 文件名里的日期,只有hive_开头的才有,所以上面过滤了</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-9"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">[</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-sy"> </span><span class="crayon-sy">{</span><span class="crayon-v">file</span><span class="crayon-o">:</span><span class="crayon-cn">5</span><span class="crayon-o">:</span><span class="crayon-cn">10</span><span class="crayon-sy">}</span><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-p"># 文件名里的日期,只有hive_开头的才有,所以上面过滤了</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-9"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">if</span><span class="crayon-h"> </span><span class="crayon-sy">[</span><span class="crayon-sy">[</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-i">n</span><span class="crayon-h"> </span><span class="crayon-sy"> <script type="math/tex" id="MathJax-Element-43"> { file : 5 : 10 }                        # 文件名里的日期,只有hive_开头的才有,所以上面过滤了
         if [ [ - n </script> date ] ] ; then
             days = </span><spanclass="crayon−sy">(</span><spanclass="crayon−sy">(</span><spanclass="crayon−h"></span><spanclass="crayon−sy">(</span><spanclass="crayon−sy"> < / s p a n >< s p a n c l a s s =" c r a y o n − s y "> ( < / s p a n >< s p a n c l a s s =" c r a y o n − s y "> ( < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − s y "> ( < / s p a n >< s p a n c l a s s =" c r a y o n − s y "> <script type="math/tex" id="MathJax-Element-44"> ( ( ( </script> now - </span><spanclass="crayon−sy">(</span><spanclass="crayon−v">date</span><spanclass="crayon−h"></span><spanclass="crayon−o">+</span><spanclass="crayon−o"> < / s p a n >< s p a n c l a s s =" c r a y o n − s y "> ( < / s p a n >< s p a n c l a s s =" c r a y o n − v "> d a t e < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − o "> + < / s p a n >< s p a n c l a s s =" c r a y o n − o "> <script type="math/tex" id="MathJax-Element-45"> ( date + % s - d </script> date ) ) / 60 / 60 / 24 ) )
             if ( ( </span><span class="crayon-v">days</span><span class="crayon-h"> </span><span class="crayon-o">&gt;</span><span class="crayon-h"> </span><span class="crayon-sy"> </span><span class="crayon-v">days</span><span class="crayon-h"> </span><span class="crayon-o">&gt;</span><span class="crayon-h"> </span><span class="crayon-sy"> <script type="math/tex" id="MathJax-Element-46"> days > </script> expired _days ) ) ; then
                 dir = </span><span class="crayon-e">line</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-13"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-i">echo</span><span class="crayon-h"> </span><span class="crayon-s">"remove expired log </span><span class="crayon-e">line</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-13"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-i">echo</span><span class="crayon-h"> </span><span class="crayon-s">"remove expired log <script type="math/tex" id="MathJax-Element-47"> line
                 echo "remove expired log </script>dir …”
                 </span><spanclass="crayon−e">hadoop</span><spanclass="crayon−v">fs</span><spanclass="crayon−h"></span><spanclass="crayon−o">−</span><spanclass="crayon−v">rm</span><spanclass="crayon−h"></span><spanclass="crayon−o">−</span><spanclass="crayon−v">r</span><spanclass="crayon−h"></span><spanclass="crayon−o">−</span><spanclass="crayon−i">skipTrash</span><spanclass="crayon−h"></span><spanclass="crayon−sy"> < / s p a n >< s p a n c l a s s =" c r a y o n − e "> h a d o o p < / s p a n >< s p a n c l a s s =" c r a y o n − v "> f s < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − o "> − < / s p a n >< s p a n c l a s s =" c r a y o n − v "> r m < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − o "> − < / s p a n >< s p a n c l a s s =" c r a y o n − v "> r < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − o "> − < / s p a n >< s p a n c l a s s =" c r a y o n − i "> s k i p T r a s h < / s p a n >< s p a n c l a s s =" c r a y o n − h ">< / s p a n >< s p a n c l a s s =" c r a y o n − s y "> <script type="math/tex" id="MathJax-Element-48"> hadoop fs - rm - r - skipTrash </script> dir
                 #sleep 1
             fi
         fi
    done

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

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

    [root@aly-bigdata-hadoop-client ~]# hadoop fs -ls /user/hive/ Found 8 items drwx—— - hive hive 0 2018-06-30 11:00 /user/hive/.Trash drwxr-xr-x - hive hive 0 2018-06-30 11:36 /user/hive/.sparkStaging drwx—— - hive hive 0 2018-06-30 11:55 /user/hive/.staging drwxr-xr-x - hive hive 0 2018-05-16 20:33 /user/hive/2684f9e1c0e99fcb0fd49e2bd52222c1.csv drwxr-xr-x - hive hive 0 2018-06-30 11:36 /user/hive/_sqoop -rw-r–r– 3 hive hive 26 2018-05-16 14:21 /user/hive/data drwxr-xr-x - hive hive 0 2018-04-18 16:39 /user/hive/py drwxrwx–x+ - hive hive 0 2018-06-26 11:20 /user/hive/warehouse [root@aly-bigdata-hadoop-client ~]#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    [ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -ls /user/hive/
    Found 8 items
    drwx – – –    - hive hive            0 2018 - 06 - 30 11 : 00 / user / hive / . Trash
    drwxr - xr - x    - hive hive            0 2018 - 06 - 30 11 : 36 / user / hive / . sparkStaging
    drwx – – –    - hive hive            0 2018 - 06 - 30 11 : 55 / user / hive / . staging
    drwxr - xr - x    - hive hive            0 2018 - 05 - 16 20 : 33 / user / hive / 2684f9e1c0e99fcb0fd49e2bd52222c1.csv
    drwxr - xr - x    - hive hive            0 2018 - 06 - 30 11 : 36 / user / hive / _sqoop
    - rw - r – r –    3 hive hive          26 2018 - 05 - 16 14 : 21 / user / hive / data
    drwxr - xr - x    - hive hive            0 2018 - 04 - 18 16 : 39 / user / hive / py
    drwxrwx – x +    - hive hive            0 2018 - 06 - 26 11 : 20 / user / hive / warehouse
    [ root @ aly - bigdata - hadoop - client ~ ] #

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

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

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

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

    [root@aly-bigdata-hadoop-client ~]# hadoop fs -du -h /user/hive/.Trash 46.1 G 138.3 G /user/hive/.Trash/180701090000 22.4 G 67.1 G /user/hive/.Trash/180701100000 11.1 G 33.4 G /user/hive/.Trash/Current
    1
    2
    3
    4

    [ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /user/hive/.Trash
    46.1 G    138.3 G    / user / hive / . Trash / 180701090000
    22.4 G    67.1 G    / user / hive / . Trash / 180701100000
    11.1 G    33.4 G    / user / hive / . Trash / Current

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

Tag Cloud

Ansible awk binlog Box anemometer crash_safe DNS FAQ Flashback gdb Hadoop HTTP HTTPS InnoDB inode Jenkins Keepalived ldconfig Linux Linux系统 lua_waf LVS MHA mount MySQL mysqldump Nginx Online DDL PHP pt-table-checksum Python redis RPM Rsync sed Shell SSH sudo sysbench trigger vsftpd Xtrabackup Zabbix 外键 数据库锁 高可用

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>

Hive 产生大量的临时文件(转载)相关推荐

  1. Hive 如何划分 Stage【转载】

    目录 正文 原文链接 正文 最近面试时我被问到 Hive 是如何划分 stage (阶段)的. 简明扼要的讲,就是以执行这个 Operator 时,它所依赖的数据是否已经"就绪"为 ...

  2. hive lock命令的使用

    1.hive锁表命令 hive> lock table t1 exclusive;锁表后不能对表进行操作 2.hive表解锁: hive> unlock table t1; 3.查看被锁的 ...

  3. 巧用WINDOWS脚本语言删除临时文件

    Windows在后台不停地为我们工作,同时也不断地给我们带来一些临时文件.虽然这些临时文件在Windows或者应用程序正常退出时会被自动删除,可是大家都知道Windows和位居其下的应用程序是如此的不 ...

  4. Hive 数仓中常见的日期转换操作

    (1)Hive 数仓中一些常用的dt与日期的转换操作 下面总结了自己工作中经常用到的一些日期转换,这类日期转换经常用于报表的时间粒度和统计周期的控制中 日期变换: (1)dt转日期 to_date(f ...

  5. 05-配置数据库的远程连接 创建hive数据库的时候要选择latin1

    1.解压hive的tar包 2.配置环境变量 source /etc/profile 3. cp /root/Downloads/apache-hive-1.2.0-bin/lib /root/Dow ...

  6. hive中的一些参数

    动态分区 设置如下参数开启动态分区: hive.exec.dynamic.partition=true 默认值:false 描述:是否允许动态分区 hive.exec.dynamic.partitio ...

  7. Hive的六种UDF完整实例与使用方法汇总

    Hive的UDF 博文链接(转载.完整实例.完整操作步骤.自己整理与验证) 一些截图 备注 GenericUDAF GenericUDAF使用流程记载 - 官方推荐 GenericUDTF Gener ...

  8. hive最新UDF函数(2016-10-25)

    为什么80%的码农都做不了架构师?>>>    hive UDF函数 :(后期翻译,暂时先贴着,有兴趣来  http://apache.wiki 可以一起来翻译呀) https:// ...

  9. 记录一次线上事故:SparkStreaming 写入 Hive 延迟

    精选30+云产品,助力企业轻松上云!>>> 点击蓝色"大数据每日哔哔"关注我 加个"星标",第一时间获取大数据架构,实战经验 背景: Hive ...

最新文章

  1. vue指令写在html中的原理,详解Vue中的MVVM原理和实现方法
  2. 华农计算机学院院长,华农大生命科学技术学院副院长到武生院任职
  3. 使用 NetDataContractSerializer 共享类型
  4. 【数学】【CF27E】 Number With The Given Amount Of Divisors
  5. ObjectiveC: 变量和数据类型:初始化方法、外部/静态变量、枚举类型、typedef、类型转换、位运算符...
  6. 沉浸式体验参加网络安全培训班,学习过程详细到底!
  7. android跳转谷歌地图导航,Android使用intent调取导航或者地图
  8. cocos2dx《我叫MT》源码和资源破解下载
  9. linux怎么创建牡蛎_牡蛎的意思
  10. Java 年龄与疾病
  11. UML—用例图的扩展关系和包含关系的区别
  12. elasticsearch 怎么删除过期的数据
  13. 基于深度学习的图像超分辨率方法 总结
  14. DYA9面向对象中--方法的重写
  15. 图灵杯 蔡老板的会议
  16. 步骤3_linux QQ install
  17. 幻影路由服务器无响应,幻影D128路由器连不上网怎么办? | 192路由网
  18. 华为开源自研AI框架昇思MindSpore应用实践:FGSM网络对抗攻击
  19. Ztorg木马分析: 从Android root木马演变到短信吸血鬼
  20. 简单实用的批量去除水印方法及操作步骤

热门文章

  1. 使用 Eigen 3.3.3 进行矩阵运算
  2. 大话设计模式-工厂模式
  3. 机器学习实验之肿瘤分类与预测(SVM)
  4. 深度学习分类任务常用评估指标——总结(重点)
  5. 360打响数字安全第一枪?免费
  6. 寒武纪新一轮融资进行中,估值增至140亿元;前滴滴研究院创始院长何晓飞创业
  7. .net 4.5 MVC5 降级至 .net 4.0 MVC 4
  8. JavaScript基础学习笔记1 (W3school JS教程)
  9. 滥用 ESI 详解(上)
  10. 初入职场SVN使用教程,保姆级