新書推薦:
《
启微·狂骉年代:西洋赛马在中国
》
售價:NT$
357.0
《
有趣的中国古建筑
》
售價:NT$
305.0
《
十一年夏至
》
售價:NT$
347.0
《
如何打造成功的商业赛事
》
售價:NT$
407.0
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:NT$
265.0
《
慈悲与玫瑰
》
售價:NT$
398.0
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:NT$
347.0
《
心跳重置
》
售價:NT$
269.0
|
編輯推薦: |
重点介绍了Hive性能调优所涉及的Hadoop组件和Hive工具
站在工程的角度介绍Hive性能调优,注重调优方法的可落地性
从语法、表模型设计、执行计划和计算引擎等多个角度进行讲解
注重实例演示和调优方法的总结,给出近百个实例带领读者实际操练
适用于Hive 1.x、Hive 2.x及Hive 3.x等多个版本
《Hive性能调优实战》核心内容:
举例感受Hive性能调优的多样性
Hive问题排查与调优思路
环境搭建
Hive及其相关大数据组件
深入MapReduce计算引擎
Hive SQL执行计划
Hive数据处理模式
YARN日志
数据存储
发现并优化Hive中的性能问题
Hive知识体系总结
超值赠送:
《Hive性能调优实战》源代码文件(需要下载)
|
內容簡介: |
本书是一本关于Apache Hive调优的书籍,旨在介绍如何进行Hive的调优,以及调优时如果使用的工具。本书在*开始会介绍Hive优化多面性,以及如何在众多的调优技巧中寻找一条调优的思路。接着介绍Hive安装,为了方便读者的练习,我们主要介绍Docker安装Hive的方式和使用cloudera提供工具Hive的方式。介绍完安装Hive方式,我们会继续介绍Hive在优化时涉及的Hadoop组件和Hive工具。*后会介绍如何监控Hive在运行时出现性能问题。本书适合对大数据开发感兴趣的爱好者、对Hive优化有兴趣的人员使用。
|
關於作者: |
林志煌 曾在中国互联网头部公司长期从事大数据相关项目的研发。擅长并能够熟练使用Hive、MapReduce和Spark等大数据相关技术。经手过日数据流量TB级别和总量PB级别的Hadoop大数据平台建设。从事过数据采集、数据清洗、数据仓库模型构建及数据产品研发等工作,涵盖了数据生命周期的主要阶段。
|
目錄:
|
前言
第1章举例感受Hive性能调优的多样性1
1.1感受改写SQL对性能的影响1
1.1.1数据准备1
1.1.2union案例4
1.1.3改写SQL实现union的优化5
1.1.4失败的union调优8
1.2感受调整数据块大小对性能的影响10
1.2.1数据准备11
1.2.2案例比较11
1.3感受不同数据格式对性能的提升15
1.3.1数据准备15
1.3.2案例比较16
1.4感受不同的表设计对性能的影响18
1.4.1数据准备19
1.4.2案例比较21
1.5调优其实不难24
第2章Hive问题排查与调优思路25
2.1小白推演Hive的优化方法25
2.1.1类比关系型数据库的调优25
2.1.2学习大数据分布式计算的基本原理28
2.1.3学习使用YARN提供的日志31
2.1.4干预SQL的运行方式33
2.2老工对Hive的调优理解36
2.2.1从一个过度优化案例说起36
2.2.2编码和调优的原则43
2.2.3Hive程序相关规范49
2.3总结调优的一般性过程51
第3章环境搭建53
3.1Docker基础53
3.1.1Docker介绍54
3.1.2安装Docker56
3.1.3常见的Docker使用与管理命令58
3.1.4使用Dockerfile构建服务镜像60
3.1.5Dockerfile语法63
3.2Cloudera Docker搭建伪分布式环境66
3.3Docker搭建分布式集群68
3.3.1构建JDK镜像69
3.3.2构建Hadoop镜像70
3.3.3构建Hive镜像72
3.3.4启动集群73
3.4CDM搭建分布式集群75
3.4.1Cloudera Manager组件75
3.4.2Docker构建软件安装内部源76
3.4.3CDM安装分布式集群79
3.5使用GitHub开源项目构建集群87
第4章Hive及其相关大数据组件89
4.1Hive架构89
4.1.1Hive 1.x版本基本结构89
4.1.2Hive元数据91
4.2YARN组件97
4.2.1YARN的优点97
4.2.2YARN基本组成97
4.2.3YARN工作流程99
4.2.4YARN资源调度器100
4.3HDFS架构102
4.3.1常见HDFS优化102
4.3.2HDFS基本架构和读写流程103
4.3.3HDFS高可用架构105
4.3.4NameNode联盟107
4.4计算引擎109
4.4.1MapReduce计算引擎109
4.4.2Tez计算引擎111
4.4.3LLAP长时在线与处理程序113
4.4.4Spark计算引擎115
第5章深入MapReduce计算引擎117
5.1MapReduce整体处理过程117
5.2MapReduce作业输入118
5.2.1输入格式类InputFormat118
5.2.2InputFormat在Hive中的使用120
5.3MapReduce的Mapper121
5.3.1Mapper类121
5.3.2Hive中与Mapper相关的配置123
5.4MapReduce的Reducer125
5.4.1Reducer类126
5.4.2Hive中与Reducer相关的配置127
5.5MapReduce的Shuffle128
5.6MapReduce的Map端聚合129
5.6.1Combiner类129
5.6.2Map端的聚合与Hive配置130
5.7MapReduce作业输出131
5.7.1OutputFormat作业输出132
5.7.2Hive配置与作业输出133
5.8MapReduce作业与Hive配置134
5.9MapReduce与Tez对比135
5.9.1通过案例代码对比MapReduce和Tez135
5.9.2Hive中Tez和LLAP相关的配置141
第6章HiveSQL执行计划143
6.1查看SQL的执行计划143
6.1.1查看执行计划的基本信息144
6.1.2查看执行计划的扩展信息148
6.1.3查看SQL数据输入依赖的信息148
6.1.4查看SQL操作涉及的相关权限信息152
6.1.5查看SQL的向量化描述信息152
6.2简单SQL的执行计划解读158
6.3带普通函数操作符SQL的执行计划解读161
6.3.1执行计划解读161
6.3.2普通函数和操作符162
6.4带聚合函数的SQL执行计划解读164
6.4.1在Reduce阶段聚合的SQL164
6.4.2在Map和Reduce阶段聚合的SQL167
6.4.3高级分组聚合169
6.5带窗口分析函数的SQL执行计划解读172
6.6表连接的SQL执行计划解读175
6.6.1Hive表连接的类型175
6.6.2内连接和外连接176
6.6.3左半连接178
第7章Hive数据处理模式181
7.1过滤模式181
7.1.1where子句过滤模式182
7.1.2having子句过滤183
7.1.3distinct子句过滤184
7.1.4表过滤186
7.1.5分区过滤188
7.1.6分桶过滤189
7.1.7索引过滤191
7.1.8列过滤191
7.2聚合模式192
7.2.1distinct模式193
7.2.2count列、count*、count1行计数聚合模式194
7.2.3可计算中间结果的聚合模式197
7.2.4不可计算中间结果的聚合模式199
7.3连接模式200
7.3.1普通Map连接201
7.3.2桶的Map连接和排序合并桶的Map连接207
7.3.3倾斜连接209
7.3.4表连接与基于成本的优化器210
第8章YARN日志212
8.1查看YARN日志的方式212
8.1.1ResourceManager Web UI界面212
8.1.2JobHistory Web UI界面215
8.2快速查看集群概况216
8.2.1Cluster Metrics集群度量指标217
8.2.2Cluster Node Metrics集群节点的度量信息218
8.2.3Cluster Overview集群概况220
8.3查看集群节点概况221
8.3.1节点列表概况221
8.3.2节点详细信息223
8.3.3节点作业信息224
8.4查看集群的队列调度情况226
8.5查看集群作业运行信息230
8.5.1集群作业运行状态230
8.5.2查看作业运行的基本信息231
8.5.3查看作业计数器232
第9章
|
內容試閱:
|
Hive作为Hadoop生态的重要组成部分,以其稳定和简单易用成为了当前企业在搭建大数据平台及构建企业级数据仓库时使用较为普遍的大数据组件之一。
目前,图书市场上关于Hive的书籍比较少,而专题介绍Hive性能调优的图书就更少了,几乎是个空白。有些书籍中涉及Hive性能调优,但也只是浅尝辄止。笔者认为,Hive是构建在Hadoop生态之上的,其性能调优其实与自身及其关联的大数据组件都有很密切的联系。鉴于市面上还没有从Hadoop的整体和全局介绍Hive性能调优的书籍,笔者编写了这本书。这本书除了总结和完善自己的知识体系外,还希望能将自己多年的大数据开发经验系统地总结出来,供读者借鉴,从而让他们在学习和工作中少走弯路。
考虑到很多调优方法的着眼点有一定的相似性,这些方法一般可以适用于多个Hive版本,所以本书在讲解时穿插了Hive 1.x、Hive 2.x和Hive 3.x等多个版本的内容。
本书特色
1. 内容非常系统、实用
本书从语法、表模型设计、执行计划和计算引擎等多个角度系统地介绍了Hive性能调优的相关知识。为了避免纸上谈兵,书中在讲解知识点时列举了大量的实例帮助读者理解。
2. 从原理谈优化
本书所介绍的实例都是从原理谈优化,让读者知其然也知其所以然。例如,在介绍HiveSQL调优时,我们会转换成计算引擎执行的等价代码,让读者知道HiveSQL的实际运行流程,从而直观地理解其可能引发的性能问题。
3. 适用于多个Hive版本
本书总结了Hive性能调优的方法论,并总结了Hive性能调优需要关注的技术点。这些方法论和技术点无论是现在还是将来,只要是将Hive构建于Hadoop大数据平台之上,就都可以借鉴和使用。
本书内容
第1章举例感受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的情况下,其性能也可以得到大幅提升。
第10章发现并优化Hive中的性能问题
本章运用前面章节所介绍的性能问题定位工具,来定位Hive中常见的性能问题。对于Hive的使用者而言,借助Hadoop生态组件中所提供的工具就足以应对日常生产环境中所产生的问题。
第11章Hive知识体系总结
本章简要梳理了Hive的整个知识体系,帮助读者比较全面地了解一项技术所涉及的方方面面,也有助于读者在学习该技术时形成自己的调优体系。
配书资料获取方式
本书涉及的所有源代码需要读者自行下载。请在华章公司的网站www.hzbo
|
|