Hive作为Hadoop生态的重要组成部分,以其稳定和简单易用成为了当前企业在搭建大数据平台及构建企业级数据仓库时使用较为普遍的大数据组件之一。
目前,图书市场上关于Hive的书籍比较少,而专题介绍Hive性能调优的图书就更少了,几乎是个空白。有些书籍中涉及Hive性能调优,但也只是浅尝辄止。笔者认为,Hive是构建在Hadoop生态之上的,其性能调优其实与自身及其关联的大数据组件都有很密切的联系。鉴于市面上还没有从Hadoop的整体和全局介绍Hive性能调优的书籍,笔者编写了这《Hive性能调优实战》。这本书除了总结和完善自己的知识体系外,还希望能将自己多年的大数据开发经验系统地总结出来,供读者借鉴,从而让他们在学习和工作中少走弯路。
考虑到很多调优方法的着眼点有一定的相似性,这些方法一般可以适用于多个Hive版本,所以本书在讲解时穿插了Hive 1.x、Hive 2.x和Hive 3.x等多个版本的内容。
《Hive性能调优实战》特色
1. 内容非常系统、实用
本书从语法、表模型设计、执行计划和计算引擎等多个角度系统地介绍了Hive性能调优的相关知识。为了避免纸上谈兵,书中在讲解知识点时列举了大量的实例帮助读者理解。
2. 从原理谈优化
本书所介绍的实例都是从原理谈优化,让读者知其然也知其所以然。例如,在介绍HiveSQL调优时,我们会转换成计算引擎执行的等价代码,让读者知道HiveSQL的实际运行流程,从而直观地理解其可能引发的性能问题。
3. 适用于多个Hive版本
本书总结了Hive性能调优的方□□,并总结了Hive性能调优需要关注的技术点。这些方□□和技术点无论是现在还是将来,只要是将Hive构建于Hadoop大数据平台之上,就都可以借鉴和使用。
《Hive性能调优实战》内容
□□章 举例感受Hive性能调优的多样性
本章用代码演示了各种优化技巧,从多个完全不同的角度介绍了Hive性能调优的多样性,例如改写SQL、调整数据存储的文件块、改变数据存储格式、设计Hive表等。
第2章 Hive问题排查与调优思路
本章介绍了Hive性能调优的整个过程,并给出了作者对于Hive调优过程中的一些思考,如编码和调优的原则、Hive SQL的相关开发规范等。通过阅读本章内容,读者可以对Hive性能调优的过程和工具有一个整体认识。
第3章 环境搭建
本章介绍了多种快速部署大数据开发环境的方式。考虑到不同读者手头的计算机资源有限,加之很多开发者并不喜欢“折腾”基础环境的搭建,书中介绍了一些比较快捷搭建环境的方式,涉及Docker和Cloudera Manager等技术。通过阅读本章内容,读者可以快速构建自己的大数据开发环境。
第4章 Hive及其相关大数据组件
本章比较系统地介绍了Hive及其相关大数据组件的基础知识。因为Hive构建于Hadoop大数据平台之上,其数据存储依赖HDFS,而HiveSQL的执行引擎依赖MapReduce、Spark和Tez等分布式计算引擎,其作业资源调度依赖YARN和Mesos等大数据资源调度管理组件,所以脱离Hadoop生态讲Hive性能调优无异于隔靴搔痒,解决不了根本问题。
第5章 深入MapReduce计算引擎
本章详细介绍了MapReduce计算引擎的相关内容。之所以选择MapReduce,首先是因为它足够简单,没有过多对高层接口做封装,而是将所有业务计算都拆分成Map和Reduce进行处理,易于读者理解;其次是因为大多数分布式计算框架处理数据的基本原理和MapReduce大同小异,学习MapReduce对于日后学习Spark和Tez有举一反三的效果。
第6章 Hive SQL执行计划
本章带领读者系统地学习了Hive SQL的相关知识。Hive SQL执行计划描绘了SQL实际执行的整体轮廓。通过执行计划,可以了解SQL程序在转换成相应的计算引擎时的执行逻辑。掌握了执行逻辑,就能更好地了解程序出现的瓶颈,从而便于用户更有针对性地进行优化。
第7章 Hive数据处理模式
本章介绍了Hive的数据处理模式。Hive SQL的语法多种多样,但是从数据处理的角度而言,这些语法本质上可以被分成三种模式,即过滤模式、聚合模式和连接模式。通过这些计算模式,读者可以了解它们的优缺点,从而提升SQL优化水平。
第8章 YARN日志
YARN日志是每个Hive调优人员必然会用到的工具。本章着重介绍了YARN日志,并对其进行解读。如果说执行计划提供了一个定性优化依据,那么YARN日志提供的就是一个定量优化依据。
第9章 数据存储
本章着重介绍了Hive数据存储的相关知识。数据存储是Hive操作数据的基础,选择一个合适的底层数据存储文件格式,即使在不改变当前Hive SQL的情况下,其性能也可以得到大幅提升。
□□0章 发现并优化Hive中的性能问题
本章运用前面章节所介绍的性能问题定位工具,来定位Hive中常见的性能问题。对于Hive的使用者而言,借助Hadoop生态组件中所提供的工具就足以应对日常生产环境中所产生的问题。
□□1章 Hive知识体系总结
本章简要梳理了Hive的整个知识体系,帮助读者比较全面地了解一项技术所涉及的方方面面,也有助于读者在学习该技术时形成自己的调优体系。
配书资料获取方式
《Hive性能调优实战》涉及的所有源代码需要读者自行下载。请在华章公司的网站www.hzbook.com上搜索到《Hive性能调优实战》,然后单击“资料下载”按钮,即可在《Hive性能调优实战》页面上找到下载链接。
《Hive性能调优实战》读者对象
Hive初学者与进阶读者;
大数据开发工程师;
大数据开发项目经理;
专业培训机构的学员;
高校相关专业的学生。
……