三、HIVE 高级进阶笔记

1.hiveserver2
  • bin/hiveserver2 进入服务后端
  • bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORT 前段命令窗口,跟hive shell一样操作
2.压缩格式
snappy 用mvn 编译 use -Drequire.snappy 替换hadoop ***/native
bin/hadoop checknative 检查

压缩比:bzip2>gzip>lzo>snappy
解压速度: spappy>lzo>gzip>bzip2
其中 gzip不支持分区,其他都支持


3.数据格式
sequence,textfile
rc,orc,paqquet 列式存储,压缩
avro

create table Addresses (
name string,
***
zip int
) stored as orc tblproperties ("orc.compress"="SNAPPY");

局部小结:
  • 实际经常使用orc或parquet格式,压缩格式则使用snappy
4.hive调优
  • FetchTask配置,默认mininal,可以改成more
  • 大表拆分
  • 外部表,分区表
  • 数据存储,数据压缩

e.g:
create table page_views_orc_snappy
stored by orc
as select * from xxx;

  • SQL优化
  1. Common/Shuffle/Reduce Join
发生的阶段,reduce task
大表对大表,每张表都是从文件中读取
  1. MapJoin
map task阶段
大表从文件读取,小表内存中,即DistributedCache
  1. SMB(Sort-Merge-Bucket) Join
4.explain [extended] 查看执行计划

  • 其他
  1. 并行度parallel设置,一般设置10~20为宜
  2. jvm重用 九个以下
  3. Reduce数目
  4. 推测执行关闭
  5. map数目

IIII 项目实战
  • 日志映射表两种方式
  1. 普通定义,日志文件要预处理
  2. HIVE正则表达式处理
CREATE TABLE apachelog (
host STRING,
***
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = ""
)
STORED AS TEXTFILE;
  • python脚本
  1. insert overwrite u_data_new select TRANSFORM(field1,field2...) --input
USING 'python xxx.py' -- script
AS (field1,field2...) -- output
from u_data;
select field1,count(*) from u_data_new group by field1;
xxx.py --python脚本,要单独写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值