博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.hive数据库调优之路
阅读量:7059 次
发布时间:2019-06-28

本文共 1133 字,大约阅读时间需要 3 分钟。

1.关于in使用的悲剧。

            目前公司使用db2数据库(主要),另外也有部分的大数据相关的业务,数据量超级大,主要有hive,hbase,spark等。今天终于有机会在大数据平台hive上跑数据,异常的兴奋,三下五除二写完了代码,开始跑。故事就这么开始了。

涉及到的表有:temp_A(a1,b1,c1):字段有3个,数据量:1600行左右。

                         temp_B (a1,b1,d,e.....)字段至少三十个,数据量:1600多亿条数据。

进行了如下的查询:

       select b.phone_number,b.option_times from temp_A   a

               left join temp_B on  b  on a.a1=b.a1 and a.b1=b.b1  

       where x_id='3423' and op_num='2323' and option_time in('201401 ',' 201402','201403');

      在hive平台进行调度,跑了10分钟,map任务执行了8%,并且严重的占用了资源,导致其他同事的程序也跑不了,最后找到了我的头上,kill了程序。

进行修改:

   建立临时表temp_C      

for i in 201401 201402 201403

    do 

insert into  table temp_C  

  select a1 ,b1,phone_number,opsition_time from temp_B where  x_id='3423' and op_num='2323' and option_time =${i}

done

   执行完毕后temp_c的数据量大概有23万之多。此程序的调度时间大概10分钟就跑完了。剩下的问题就简单了 。

总结:上述说明了两个问题,第一,大数据,hive可以处理的数据量很大,处理数据的能力也很强,但是这并不代表你可以 为所欲为的占用资源;第二,不管是sql还是hql语言,调优很重要。

温馨提示:在hive中insert语句:insert into table tab_name.

 

-----------------------------------------------------完美分根线--------------------------------------------------------------

----------------------周末我会对hive的基础 操作和概念进行一些简单的总结,谢谢大家支持。假装有很多人【傲娇】------------

      

 

 

 

2.Java开发

转载于:https://www.cnblogs.com/bug-mark/p/8313491.html

你可能感兴趣的文章
我的php学习笔记(42) PHP通过mail()或Socket发从邮件
查看>>
Mysql-主从精简配置
查看>>
ROM 、RAM和FLASH 的区别
查看>>
深入挖掘vsftpd服务
查看>>
使用smtplib发送E-mail
查看>>
C#窗体控件更新(四)
查看>>
solr部署
查看>>
Linux命令之umask
查看>>
浏览器对象的各种宽高
查看>>
python学习笔记--虫师
查看>>
802.1x登录认证
查看>>
我的友情链接
查看>>
Cobbler无人值守安装
查看>>
××× 专线
查看>>
怎样在 ubuntu 上安装 Linux 3.11 内核
查看>>
Citrix XenApp Lic指向设置
查看>>
移动视频技术
查看>>
U盘安装Linux系统Centos5.x中遇到的问题及解决方案
查看>>
P1063 能量项链(区间dp)
查看>>
centos6 内核优化
查看>>