hive技术总结

来源:互联网 发布:香港最新直播软件 编辑:程序博客网 时间:2024/06/06 17:35

1.hive基本架构


driver 解释器 编译器 优化器 运行器

metadata 存储元信息

hadoop 集群



可与其他框架关联元数据




2.hive 数据类型


与传统sql的数据类型多了 map array struct


3.hive 定义


分区partitioned by 

分桶 bucket 

例如:

Create table t (user_id int,url string)
partitioned by (dt string)
clustered by (user_id) INTO 96 buckets;


set hive.enforce.bucketing = true;


数据倾斜 skewed keys() on()


4.map-side 

适合大表和小表关联,小表放到内存中,默认为reduce-side

使用方式:

select /*+MAPJOIN(b)*/ a.key
from a join b on a.key=b.key


5.order by 和 sort by


order by 需与limit连用,一个reduce聚合,效率较低
sort by为内部有序,全局无序,效率较高,一般与distribute by 连用


select s.ymd,s.symbol,s.price_close
from stocks s
distribute by s.symbol

sort by s.symbol,s.ymd;


可实现同一symbol下有序


再无序sort ymd的情况下=
select s.ymd,s.symbol,s.price_close
from stocks s
cluster by s.symbol;


6.Transform

类似hadoop streaming,允许任意语言编写mr嵌入到hql中,在java进程中额外启动一个线程运行脚本/二进制程序,并通过标准输入输出进行数据传递


7.自定义udf,udaf,udtf

1 0
原创粉丝点击