![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
文章平均质量分 83
0lanfeng0
Data Scientist
展开
-
5.Hive优化-数据倾斜
Hive在进行join时,按照join的key进行分发,而在join左边的表的数据会首先读入内存,如果左边表的key相对分散,读入内存的数据会比较小,join任务执行会比较快。数据倾斜主要表现在,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条Key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完。原创 2023-08-17 14:10:59 · 80 阅读 · 1 评论 -
6.Hive优化-SQL优化
Hive是将符合SQL语法的字符串解析生成可以在Hadoop上执行的MapReduce的工具。使用Hive尽量按照分布式计算的一些特点来设计sql,和传统关系型数据库有区别,如果union all的部分个数大于2,或者每个union部分数据量大,应该拆成多个insert into 语句,实际测试过程中,执行时间能提升50%尽量尽早地过滤数据,减少每个阶段的数据量,对于分区表要加分区,同时只选择需要使用到的字段。对历史库的计算经验 (这项是说根据不同的使用目的优化使用方法)可以使用中间表来完成复杂的逻辑。原创 2023-08-17 18:30:00 · 85 阅读 · 1 评论 -
2.Hive UDF
UDF:进来一个出去一个,row mapping。是row级别操作开发。创建UDF函数 udf123。4.2拷贝到Linux上。添加jar包到hive中。evaluate方法。原创 2023-08-17 14:09:29 · 71 阅读 · 1 评论 -
3.Hive UDTF
UDTF(User-Defined Table-Generating Functions)用来解决输入一行输出多行(one-to-many maping)的需求。(4)初始化完成后会调用process()方法,对传入的参数进行处理,可以通过forward()方法把结果返回。(3)UDTF首先会调用initialize()方法,此方法返回UDTF的返回行的信息(返回个数,类型)。(2)实现initialize(),process(),close()三个方法。4.2拷贝到Linux上。分割爱好字段,多行显示。原创 2023-08-17 14:08:40 · 41 阅读 · 1 评论