1.hive数据库调优之路

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