hive优化大全(hive的优化这一篇就够了)

您所在的位置:网站首页 hive的数据计算使用 hive优化大全(hive的优化这一篇就够了)

hive优化大全(hive的优化这一篇就够了)

#hive优化大全(hive的优化这一篇就够了)| 来源: 网络整理| 查看: 265

文章目录 写在前面一、概述1.1 数据倾斜1.2 MapReduce 二、产生原因三、解决方案和避免方案3.1 Hive语句初始化配置3.1.1 join过程的配置3.1.2 map join过程的设置3.1.3 combiner过程3.1.4 group by 过程3.1.5 map 或者reduce 过程3.1.6 mapper 设置3.1.7 reducer设置3.1.8 存储与压缩格式3.1.9动态分区3.1.10并行执行job3.1.11 本地化运算 3.2 建表层面3.2.1 创建分区表3.2.2 创建分桶表3.2.3 指定存储格式3.2.3.1TextFile3.2.3.2 Sequence File3.2.3.3 RC File3.2.3.4 ORC File3.2.3.5 Parquet File 3.2.4数据压缩模式3.2.4.1 常见压缩格式3.2.4.2 压缩包 3.3 HQL语法与运行层面3.3.1 查看SQL语句的执行计划3.3.2 列裁剪3.3.3 谓语下推3.3.4合并小文件3.3.4.1 map端的临时设置3.3.4.2 Map/Reduce输出合并

写在前面

前几天发的大数据组件之Hive(Hive学习一篇就够了),其访问量和点赞数很多,这次打算更新一点关于hive的语句优化和关于hive的一些配置的文章,希望本文能帮助大数据小白和刚从事大数据开发的你一些帮助。希望大家持续关注,我会继续更新更多的文章。

一、概述

首先。我们为啥要进行优化。从事大数据开发的人员都体验过这样的感觉。当我们写完一个查询指令。当我们按下回车的时候,我们等到map的进度条到99%时,系统就像卡住一样。就是出不来结果。这个时候,我们就知道出现了数据倾斜了。这个时候,我们就要对于语句进行响应的优化。下面我将从多个方面对于数据倾斜等hive优化问题进行解析。

1.1 数据倾斜

首先。我们需要弄清楚什么是数据倾斜,百度百科给出如下的定义:请添加图片描述 简单来说,是由于数据特征或者数据方式不合适,导致某个处理节点处理太多的数据,导致其他数据节点处理数据量过少,进而导致整个集群数据处理效率很低

1.2 MapReduce

我们需要知道的是,我们使用的hive虽然用的SQL语句,hive是将我们写的SQL语句通过抽象语法树转换为MapReduce的。 关于MapReduce,百度百科是这样定义的 请添加图片描述 MapReduce通俗来说就是将数据进行切片,在多个计算节点进行计算处理,这样就可以完成大量的数据的处理,可以解决单个机器的计算性能的瓶颈

二、产生原因

根据数据处理的过程中,我将数据倾斜分为以下原因

key分布不均匀业务数据本身的特性建表时考虑不周某些SQL语句本身就有数据倾斜 三、解决方案和避免方案 3.1 Hive语句初始化配置 3.1.1 join过程的配置 #默认join键对应的记录数超过该值则进行倾斜分析 set hive.skewjoin.key=100000; #默认fa1se,如果join键倾斜则设为true set hive.optimize.skewjoin=true; #默认10000,倾斜处理mapper数量上限 set hive.skewjoin.mapjoin.map.tasks=10000; #默认32M,倾斜最小切片大小 set hive.skewjoin.mapjoin.min.split=32M; 3.1.2 map join过程的设置 #默认true set hive.auto.convert.join=true; #默认小表


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3