hive 优化有哪些?
(1) 数据存储及压缩。
针对hive中表的存储格式通常有orc和parquet,压缩格式一般使用snappy。
相比与textfile格式表,orc 占有更少的存储。
因为 hive 底层使用 MR 计算架构,数据流是 hdfs 到磁盘再到hdfs,而且会有很多次,
所以使用 orc 数据格式和 snappy 压缩策略可以降低 IO 读写,还能降低网络传输量,
这样在一定程度上可以节省存储,还能提升 hql 任务执行效率;
lzo 压缩 : 减少磁盘空间占用
列式存储 : 行转列 text -> parquet
(2) 通过调参优化。
tez 引擎 : 不是只有MR,更灵活,运算更快
并行执行,调节 parallel 参数;
调节 jvm 参数,重用 jvm;
设置 map、reduce 的参数;
开启 strict mode 模式;
关闭推测执行设置。
(3) 有效地减小数据集
将大表拆分成子表;
结合使用外部表和分区表。
(4) SQL 优化
大表对大表:尽量减少数据集,可以通过分区表,避免扫描全表或者全字段;
大表对小表:设置自动识别小表,将小表放入内存中去执行
sql explain : join where 先 where 后 join
hql -> mr : 解析 编译 优化 执行