Hive 产生大量的临时文件(转载)
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 /var1234567[ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /77.6 M 2.0 G / hbase124.7 M 297.8 M / kylin0 0 / system1.6 T 4.9 T / tmp1.7 T 5.0 T / user262.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-95e93e9e37cf123456789[ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /tmp56 168 / tmp / . cloudera_health_monitoring_canary _files0 0 / tmp / hadoop - yarn0 0 / tmp / hbase - staging1.6 T 4.7 T / tmp / hive0 0 / tmp / kylin92.9 G 278.8 G / tmp / logs153 459 / tmp / partitions_1a3c689d - a2f1 - 44c7 - a1d4 - c224ab4df7ec153 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-59d573a81e0012345678910111213141516171819202122232425[ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /tmp/hive/hive/0 0 / tmp / hive / hive / 0030d2fb - eacc - 4068 - 8337 - 3d989dd8e8f90 0 / tmp / hive / hive / 00373670 - c0f3 - 4860 - 9c94 - 7881395b58180 0 / tmp / hive / hive / 003eddc2 - 71c2 - 416e - b194 - 7f0780675f420 0 / tmp / hive / hive / 004792b6 - ae5b - 49c4 - 9090 - c08f6d40e2b50 0 / tmp / hive / hive / 0051d4a9 - b8cf - 4616 - a787 - d07448bc03590 0 / tmp / hive / hive / 005bae02 - 4a05 - 4e32 - 872a - ff19787b5ede0 0 / tmp / hive / hive / 0099afb4 - 7eff - 4d16 - be77 - 40e5b16038490 0 / tmp / hive / hive / 009d4002 - e718 - 41e1 - 81f8 - 4b0d64c9e25f935.7 M 2.7 G / tmp / hive / hive / 00bdfa7a - 4fe5 - 4778 - a5ec - 06fb78b92e510 0 / tmp / hive / hive / 00c92ea7 - 7288 - 4a17 - 960f - 0ba52bfd3bb70 0 / tmp / hive / hive / 00d63bbc - 7287 - 4e95 - a2a8 - 7f638b958fae85.5 M 256.4 M / tmp / hive / hive / 0162335c - c562 - 49f8 - aa0c - 54a835c876800 0 / tmp / hive / hive / 016f626e - f47c - 4368 - a459 - 2fee64e796c20 0 / tmp / hive / hive / 017cfa83 - beda - 404a - b211 - 6264a3735f1a280.7 K 842.0 K / tmp / hive / hive / 018f6e83 - 92fd - 4d55 - b670 - 95264de6f8540 0 / tmp / hive / hive / 02867e9d - bfe5 - 498d - b5d7 - 2c68797794390 0 / tmp / hive / hive / 02adebe7 - e46e - 4d1f - b3e2 - 42c2103625090 0 / tmp / hive / hive / 02e14fd7 - 3035 - 479a - bd8c - 73b19b104c630 0 / tmp / hive / hive / 02f68c38 - 3fd7 - 46df - 8fd3 - a34c13a205100 0 / tmp / hive / hive / 03095e0e - 81f1 - 49eb - b90b - 331010ab8143349.4 M 1.0 G / tmp / hive / hive / 030cc6d8 - e54b - 4cce - 9e54 - 0908bdf693450 0 / tmp / hive / hive / 0316a7b7 - 36a6 - 437e - 81d1 - 6b58489265800 0 / tmp / hive / hive / 0332013a - 8af6 - 4495 - 82e2 - bf9ea95a2586773.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 done123456789101112131415161718hadoop = hadoopexpired_days = 7now = </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 # 过滤出 hive_ 开头的文件</span></div><div class="crayon-line crayon-striped-line" id="crayon-5b4482365d175336814587-6"> </div><div class="crayon-line" id="crayon-5b4482365d175336814587-7"><span class="crayon-c"> file= 3}' | while read line; do # 过滤出 hive_ 开头的文件</span></div><div class="crayon-line crayon-striped-line" id="crayon-5b4482365d175336814587-6"> </div><div class="crayon-line" id="crayon-5b4482365d175336814587-7"><span class="crayon-c"> file= 3}' | while read line; do # 过滤出 hive_ 开头的文件file={line##*/ } # 得到文件名,比如 hive_2018-06-19_08-02-33_543_5311727044302147693-1date = </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"> </span><span class="crayon-p"># 文件名里的日期,只有hive_开头的才有,所以上面过滤了</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-9"><span class="crayon-h"> </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"> </span><span class="crayon-p"># 文件名里的日期,只有hive_开头的才有,所以上面过滤了</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-9"><span class="crayon-h"> </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 ] ] ; thendays = </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">></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">></span><span class="crayon-h"> </span><span class="crayon-sy"> <script type="math/tex" id="MathJax-Element-46"> days > </script> expired _days ) ) ; thendir = </span><span class="crayon-e">line</span></div><div class="crayon-line" id="crayon-5b4482365d175336814587-13"><span class="crayon-e"> </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"> </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"> lineecho "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 1fifidone如上,我们在删除的时候用了 -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 ~]#1234567891011[ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -ls /user/hive/Found 8 itemsdrwx – – – - hive hive 0 2018 - 06 - 30 11 : 00 / user / hive / . Trashdrwxr - xr - x - hive hive 0 2018 - 06 - 30 11 : 36 / user / hive / . sparkStagingdrwx – – – - hive hive 0 2018 - 06 - 30 11 : 55 / user / hive / . stagingdrwxr - xr - x - hive hive 0 2018 - 05 - 16 20 : 33 / user / hive / 2684f9e1c0e99fcb0fd49e2bd52222c1.csvdrwxr - 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 / datadrwxr - xr - x - hive hive 0 2018 - 04 - 18 16 : 39 / user / hive / pydrwxrwx – 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/Current1234[ root @ aly - bigdata - hadoop - client ~ ] # hadoop fs -du -h /user/hive/.Trash46.1 G 138.3 G / user / hive / . Trash / 18070109000022.4 G 67.1 G / user / hive / . Trash / 18070110000011.1 G 33.4 G / user / hive / . Trash / Current如果想删除的时候避免回收站这一步,可以在删除的时候指定 -skipTrash 参数。
Tag Cloud
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"> </td><td colspan="3" id="next" class="pad"> </td>
</tr>
</tfoot><tbody>
<tr><td colspan="6" class="pad"> </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"> </td>
</tr>
</tbody>
</table></div></div> </div> </div>
Hive 产生大量的临时文件(转载)相关推荐
- Hive 如何划分 Stage【转载】
目录 正文 原文链接 正文 最近面试时我被问到 Hive 是如何划分 stage (阶段)的. 简明扼要的讲,就是以执行这个 Operator 时,它所依赖的数据是否已经"就绪"为 ...
- hive lock命令的使用
1.hive锁表命令 hive> lock table t1 exclusive;锁表后不能对表进行操作 2.hive表解锁: hive> unlock table t1; 3.查看被锁的 ...
- 巧用WINDOWS脚本语言删除临时文件
Windows在后台不停地为我们工作,同时也不断地给我们带来一些临时文件.虽然这些临时文件在Windows或者应用程序正常退出时会被自动删除,可是大家都知道Windows和位居其下的应用程序是如此的不 ...
- Hive 数仓中常见的日期转换操作
(1)Hive 数仓中一些常用的dt与日期的转换操作 下面总结了自己工作中经常用到的一些日期转换,这类日期转换经常用于报表的时间粒度和统计周期的控制中 日期变换: (1)dt转日期 to_date(f ...
- 05-配置数据库的远程连接 创建hive数据库的时候要选择latin1
1.解压hive的tar包 2.配置环境变量 source /etc/profile 3. cp /root/Downloads/apache-hive-1.2.0-bin/lib /root/Dow ...
- hive中的一些参数
动态分区 设置如下参数开启动态分区: hive.exec.dynamic.partition=true 默认值:false 描述:是否允许动态分区 hive.exec.dynamic.partitio ...
- Hive的六种UDF完整实例与使用方法汇总
Hive的UDF 博文链接(转载.完整实例.完整操作步骤.自己整理与验证) 一些截图 备注 GenericUDAF GenericUDAF使用流程记载 - 官方推荐 GenericUDTF Gener ...
- hive最新UDF函数(2016-10-25)
为什么80%的码农都做不了架构师?>>> hive UDF函数 :(后期翻译,暂时先贴着,有兴趣来 http://apache.wiki 可以一起来翻译呀) https:// ...
- 记录一次线上事故:SparkStreaming 写入 Hive 延迟
精选30+云产品,助力企业轻松上云!>>> 点击蓝色"大数据每日哔哔"关注我 加个"星标",第一时间获取大数据架构,实战经验 背景: Hive ...
最新文章
- vue指令写在html中的原理,详解Vue中的MVVM原理和实现方法
- 华农计算机学院院长,华农大生命科学技术学院副院长到武生院任职
- 使用 NetDataContractSerializer 共享类型
- 【数学】【CF27E】 Number With The Given Amount Of Divisors
- ObjectiveC: 变量和数据类型:初始化方法、外部/静态变量、枚举类型、typedef、类型转换、位运算符...
- 沉浸式体验参加网络安全培训班,学习过程详细到底!
- android跳转谷歌地图导航,Android使用intent调取导航或者地图
- cocos2dx《我叫MT》源码和资源破解下载
- linux怎么创建牡蛎_牡蛎的意思
- Java 年龄与疾病
- UML—用例图的扩展关系和包含关系的区别
- elasticsearch 怎么删除过期的数据
- 基于深度学习的图像超分辨率方法 总结
- DYA9面向对象中--方法的重写
- 图灵杯 蔡老板的会议
- 步骤3_linux QQ install
- 幻影路由服务器无响应,幻影D128路由器连不上网怎么办? | 192路由网
- 华为开源自研AI框架昇思MindSpore应用实践:FGSM网络对抗攻击
- Ztorg木马分析: 从Android root木马演变到短信吸血鬼
- 简单实用的批量去除水印方法及操作步骤