Hive性能调优实战 分享
Posted 宝哥大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive性能调优实战 分享相关的知识,希望对你有一定的参考价值。
获取方式
链接:https://pan.baidu.com/s/1TmkWssL1K45af7GDrj2QWw
提取码:26uv
关注我的公众号【宝哥大数据】,更多干货
目录
第1章 举例感受Hive性能调优的多样性
1.1 感受改写SQL对性能的影响
1.1.1 数据准备
1.1.2 union案例
1.1.3 改写SQL实现union的优化
1.1.4 失败的union调优
1.2 感受调整数据块大小对性能的影响
1.2.1 数据准备
1.2.2 案例比较
1.3 感受不同数据格式对性能的提升
1.3.1 数据准备
1.3.2 案例比较
1.4 感受不同的表设计对性能的影响
1.4.1 数据准备
1.4.2 案例比较
1.5 调优其实不难
第2章 Hive问题排查与调优思路
2.1 小白推演Hive的优化方法
2.1.1 类比关系型数据库的调优
2.1.2 学习大数据分布式计算的基本原理
2.1.3 学习使用YARN提供的日志
2.1.4 干预SQL的运行方式
2.2 老工对Hive的调优理解
2.2.1 从一个过度优化案例说起
2.2.2 编码和调优的原则
2.2.3 Hive程序相关规范
2.3 总结调优的一般性过程
第3章 环境搭建
3.1 Docker基础
3.1.1 Docker介绍
3.1.2 安装Docker
3.1.3 常见的Docker使用与管理命令
3.1.4 使用Dockerfile构建服务镜像
3.1.5 Dockerfile语法
3.2 Cloudera Docker搭建伪分布式环境
3.3 Docker搭建分布式集群
3.3.1 构建JDK镜像
3.3.2 构建Hadoop镜像
3.3.3 构建Hive镜像
3.3.4 启动集群
3.4 CDM搭建分布式集群
3.4.1 Cloudera Manager组件
3.4.2 Docker构建软件安装内部源
3.4.3 CDM安装分布式集群
3.5 使用GitHub开源项目构建集群
第4章 Hive及其相关大数据组件
4.1 Hive架构
4.1.1 Hive 1.x版本基本结构
4.1.2 Hive元数据
4.2 YARN组件
4.2.1 YARN的优点
4.2.2 YARN基本组成
4.2.3 YARN工作流程
4.2.4 YARN资源调度器
4.3 HDFS架构
4.3.1 常见HDFS优化
4.3.2 HDFS基本架构和读写流程
4.3.3 HDFS高可用架构
4.3.4 NameNode联盟
4.4 计算引擎
4.4.1 MapReduce计算引擎
4.4.2 Tez计算引擎
4.4.3 LLAP长时在线与处理程序
4.4.4 Spark计算引擎
第5章 深入MapReduce计算引擎
5.1 MapReduce整体处理过程
5.2 MapReduce作业输入
5.2.1 输入格式类InputFormat
5.2.2 InputFormat在Hive中的使用
5.3 MapReduce的Mapper
5.3.1 Mapper类
5.3.2 Hive中与Mapper相关的配置
5.4 MapReduce的Reducer
5.4.1 Reducer类
5.4.2 Hive中与Reducer相关的配置
5.5 MapReduce的Shuffle
5.6 MapReduce的Map端聚合
5.6.1 Combiner类
5.6.2 Map端的聚合与Hive配置
5.7 MapReduce作业输出
5.7.1 OutputFormat作业输出
5.7.2 Hive配置与作业输出
5.8 MapReduce作业与Hive配置
5.9 MapReduce与Tez对比
5.9.1 通过案例代码对比MapReduce和Tez
5.9.2 Hive中Tez和LLAP相关的配置
第6章 HiveSQL执行计划
6.1 查看SQL的执行计划
6.1.1 查看执行计划的基本信息
6.1.2 查看执行计划的扩展信息
6.1.3 查看SQL数据输入依赖的信息
6.1.4 查看SQL操作涉及的相关权限信息
6.1.5 查看SQL的向量化描述信息
6.2 简单SQL的执行计划解读
6.3 带普通函数/操作符SQL的执行计划解读
6.3.1 执行计划解读
6.3.2 普通函数和操作符
6.4 带聚合函数的SQL执行计划解读
6.4.1 在Reduce阶段聚合的SQL
6.4.2 在Map和Reduce阶段聚合的SQL
6.4.3 高级分组聚合
6.5 带窗口/分析函数的SQL执行计划解读
6.6 表连接的SQL执行计划解读
6.6.1 Hive表连接的类型
6.6.2 内连接和外连接
6.6.3 左半连接
第7章 Hive数据处理模式
7.1 过滤模式
7.1.1 where子句过滤模式
7.1.2 having子句过滤
7.1.3 distinct子句过滤
7.1.4 表过滤
7.1.5 分区过滤
7.1.6 分桶过滤
7.1.7 索引过滤
7.1.8 列过滤
7.2 聚合模式
7.2.1 distinct模式
7.2.2 count(列)、count(*)、count(1)行计数聚合模式
7.2.3 可计算中间结果的聚合模式
7.2.4 不可计算中间结果的聚合模式
7.3 连接模式
7.3.1 普通Map连接
7.3.2 桶的Map连接和排序合并桶的Map连接
7.3.3 倾斜连接
7.3.4 表连接与基于成本的优化器
第8章 YARN日志
8.1 查看YARN日志的方式
8.1.1 ResourceManager Web UI界面
8.1.2 JobHistory Web UI界面
8.2 快速查看集群概况
8.2.1 Cluster Metrics集群度量指标
8.2.2 Cluster Node Metrics集群节点的度量信息
8.2.3 Cluster Overview集群概况
8.3 查看集群节点概况
8.3.1 节点列表概况
8.3.2 节点详细信息
8.3.3 节点作业信息
8.4 查看集群的队列调度情况
8.5 查看集群作业运行信息
8.5.1 集群作业运行状态
8.5.2 查看作业运行的基本信息
8.5.3 查看作业计数器
第9章 数据存储
9.1 文件存储格式之Apache ORC
9.1.1 ORC的结构
9.1.2 ORC的数据类型
9.1.3 ACID事务的支持
9.2 与ORC相关的Hive配置
9.2.1 表配置属性
9.2.2 Hive表的配置属性
9.3 文件存储格式之Apache Parquet
9.3.1 Parquet基本结构
9.3.2 Parquet的相关配置
9.4 数据归档
第10章 发现并优化Hive中的
10.1 监控Hive数据库的状态
10.2 监控当前集群状态
10.3 定位性能瓶颈
10.3.1 使用HS2 WebUI排除非大数据组件的问题
10.3.2 排查长时等待调度
10.3.3 Map任务读取小文件和大文件
10.3.4 Reduce的数据倾斜
10.3.5 缓慢的Shuffle
10.3.6 集群资源的限制
10.4 数据倾斜
10.4.1 不可拆分大文件引发的数据倾斜
10.4.2 业务无关的数据引发的数据倾斜
10.4.3 多维聚合计算数据膨胀引起的数据倾斜
10.4.4 无法削减中间结果的数据量引发的数据倾斜
10.4.5 两个Hive数据表连接时引发的数据倾斜
第11章 Hive知识体系总结
11.1 Hive知识体系
11.2 数据粒度
11.3 SQL相关
11.3.1 select查询语句
11.3.2 数据定义语言(DDL)
11.3.3 数据控制语言(DML)
11.3.4 用户自定义函数(UDF)
11.4 文件操作
以上是关于Hive性能调优实战 分享的主要内容,如果未能解决你的问题,请参考以下文章
性能提升60%↑ 成本降低50%↓ 个推分享Spark性能调优实战经验