课程背景
随着大数据时代的快速到来,以及大数据在生产生活中迅速应用,大数据领域如雨后春笋般的出现大量的新技术,如Hadoop、Spark、Flink、Storm、Impala等技术,其中Hadoop、Hive、Spark已经成为大数据技术中最为重要的一部分,被越来越多的企业所使用。Hadoop、Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围广泛、前景非常广阔。采用Hadoop、Spark的目的,主要是为了使大数据处理任务速度更快,效率更高。Hadoop、Spark运行在大量的x86服务器集群中,在使用过程中不可避免的遇到性能瓶颈,这些性能问题可能是用法不对,可能是算法不是分布式算法,或者可能是数据倾斜导致等,因此需要进行一系列的性能优化,本培训尹老师总结和归纳多年工作经验,就Hadoop、Spark、Hive、SparkSQL、Shark、Imapla等大数据技术的性能调优进行深入剖析,使学员从实操层面提升到大数据技术核心原理层面进行调优,并通过生动的案例展示优化过程与效果,调优的范围包括规划调优、部署调优、硬件调优、网络调优、参数调优、开发调优、算法调优、运行调优、作业调优、数据调优和资源调优等。
课程目标
使学员掌握大数据性能调优思路
使学员掌握分布式的技术原理以及应用场景;
使学员掌握云计算、虚拟化、大数据等新兴技术以及三者之间的关系;
使学员具体掌握Hadoop技术的调优思路、方法、参数设置、开发注意事项;
使学员具体掌握Spark技术的调优思路、方法、参数设置、开发注意事项;
使学员具体掌握数据仓库工具Hive的调优思路、方法、参数设置;
使学员具体掌握大数据工具SparkSQL的设计思路、运行原理、调优方法、参数设置;
课程对象
本课程适合于业务分析人员、大数据分析师、大数据挖掘工程师;
本课程适合于大数据高级开发工程师、项目经理、技术总监;
本课程适合于企业高层管理人员;
本课程适合于IT运维人员;
课程方式
以课堂讲解、演示、案例分析为主,辅以互动研讨、现场答疑、学以致用。
课程大纲
时间 | 内容 |
第一天 | 第1个主题: 调优基础知识(深入剖析调优的概念为后续主题打下基础)(30分钟) 1、 什么是调优 2、 调优什么内容 3、 如何调优 4、 工作中调优过程 5、 实操演示:金融总帐调优案例
第2个主题: 大数据技术核心原理(大数据思路、大数据技术核心原理、大数据技术框架剖析)(60分钟) 1、 大数据特征 2、 大数据分布式集群 3、 大数据分布式文件存储系统 4、 计算迁移 5、 数据迁移 6、 数据就近原则 7、 大数据分布式计算框架 8、 大数据集群采购规划 9、 大数据集群部署规划 10、 大数据集群网络规划 11、 案例:金融企业共享存储实施大数据案例 12、 案例:Hadoop大数据技术核心实现原理 13、 案例:Hadoop分布式与云计算整合的误区 14、 案例:Hadoop分布式存储与RAID
第3个主题: YARN资源管理讲解(深入讲解YARN资源管理讲解)(30分钟) 1、 YARN资源管理讲解 2、 YARN介绍 3、 YARN的设计思想 4、 YARN的核心组件 5、 YARN为核心的生态系统 6、 YARN的 HA机制 7、 YARN应用程序编写 8、 ResourceManager深入剖析 9、 ClientRMService与AdminService 10、 NodeManager深入剖析 11、 Container 12、 调优案例:运行MapReduce程序理解YARN的运行原理
第4个主题: Spark调优基础知识(Spark大数据集群介绍)(90分钟) 1、 Spark集群部署优化 2、 Spark RDD计算模型解析及优化思路 3、 Spark RDD操作剖析 4、 Spark作业基本运行原理 5、 Spark作业资源占用 6、 Spark资源框架YARN、Mesos 7、 实操演示:Spark RDD运行过程剖析案例
第5个主题: Spark开发调优(Spark代码开发调优剖析)(90分钟) 1、 Spark开发调优原则 2、 JVM调优 3、 Spark内存Cache调优原理 4、 Spark内存Cache调优思考方法 5、 常见Spark开发调优方法和思路 6、 Spark算法调优和思路 7、 案例:Spark算法优化案例剖析 8、 实操演示:Spark Cache运行案例剖析
第6个主题: Spark资源调优(深入剖析Spark资源调优)(90分钟) 1、 Spark运行参数调优 2、 Spark配置参数调优 3、 资源优化方法,如何设罝合适的资源 4、 Spark Task数、Process数设置 5、 案例:Spark Task调优案例 6、 实操演示:Spark Process调优案例 |
第二天 | 第7个主题: Spark数据倾斜、计算倾斜调优(剖析Spark数据倾斜原因、计算倾斜原因剖析以及解决方案)(60分钟) 1、 数据倾斜现象,如何判断倾斜 2、 倾斜发生原理 3、 计算倾斜原理 4、 如何定位倾斜代码,如何查看倾斜数据 5、 数据倾斜解决方案 6、 数据重复因子优化 7、 实操演示:数据倾斜案例
第8个主题: Spark shuffle调优(深入剖析典型Spark shuffle原理以及优化方法)(30分钟) 1、 shuffle简介,运行原理 2、 shuffle调优概述 3、 shuffle调优方法,相关参数 4、 实操演示:Spark shuffle优化案例
第9个主题: Spark调优总结(总结Spark的调优方案与流程)(30分钟) 1、 Spark调优通用流程和方法 2、 Spark调优原则 3、 案例:如何分析Spark作业日志
第10个主题: Hive调优基础知识(深入剖析Hive的运行原理)(60分钟) 1、 Hive部署架构 2、 Hive作业基本运行原理 3、 MapReduce性能分析 4、 Hive作业资源占用
第11个主题: Hive调优(深入剖析Hive调优的技术和方法)(60分钟) 1、 Hive调优概述 2、 Hive参数调优 3、 Hive SQL调优 4、 Hive map数据调优 5、 Hive的分区调优 6、 Hive的桶调优 7、 Hive UDF、UDAF调优 8、 其他常用调优方法 9、 数据倾斜处现方法 10、 实操演示:Hive的分区调优案例
第12个主题: Hive调优总结(总结Hive调优的流程、方法、原则)(30分钟) 1、 Hive调优通用流程和方法 2、 Hive调优原则 3、 实操演示:如何分析Hive作业日志
第13个主题: SparkSQL调优基础知识(深入剖析SparkSQL数据操作调优和实践案例)(60分钟) 1、 SparkSQL基础知识介绍 2、 SparkSQL分布式架构原理 3、 SparkSQL数据模型 4、 SparkSQL作业基本运行原理 5、 SparkSQL使用注意事项 6、 SparkSQL DDL、DML、SQL、函数 7、 SparkSQL作业资源占用 8、 实操演示:银行在线支付统计的案例
第14个主题: SparkSQL调优(SparkSQL具体调优方法介绍)(60分钟) 1、 SparkSQL调优概述 2、 SparkSQL参数调优 3、 SparkSQL SQL调优 4、 SparkSQL分区调优 5、 其他常用调优方法 6、 数据倾斜处理方法 7、 SparkSQL与Shark、Hive、Pig区别剖析 8、 实操演示:SparkSQL调优案例
第15个主题: Spark SQL执行计划讲解和优化经验(深入讲解Spark SQL执行计划和一些优化的经验)(60分钟) 1、 Spark SQL执行计划讲解 2、 普通方式提交任务的缺点以及优化方法 3、 Spark SQL执行计划 4、 explain查看物理计划 5、 explain(true)查看整个SQL的执行计划 6、 解析过程 7、 逻辑阶段(Logical Plan) 8、 优化阶段 9、 物理执行计划(Physical Plan) 10、 Spark SQL优化经验 11、 Spark SQL优化的经验分享 |
第三天 | 第16个主题: HBase表设计原则(深入讲解HBase表设计原则,遵循什么原则才能达到性能最大化)(90分钟) 1、 HBase表设计原则 2、 遵循什么原则才能达到性能最大化 3、 HBase逻辑模型 4、 HBase列族与列 5、 HBase时间戳 6、 列族的数量及列族的势 7、 行键(RowKey)的设计 8、 尽量最小化行键和列族的大小 9、 版本的数量 10、 命名空间的结构 a) Table b) RegionServer group c) Permission d) Quota 11、 建表高级属性 a) BLOOMFILTER b) VERSIONS c) COMPRESSION d) TTL e) alter f) describe/desc g) disable_all/enable_all h) drop_all i) HBase预分区 12、 表设计 a) 列簇设计 b) RowKey设计 13、 Rowkey设计三原则 a) Rowkey长度原则 b) Rowkey散列原则 c) Rowkey唯一原则 14、 数据热点 15、 防止数据热点的有效措施 16、 行式数据库 vs 列式数据库 17、 HBase适合的业务场景剖析 18、 HBase不适合的业务场景举例 19、 分布式NoSQL数据库与事务 20、 HBase表结构设计应用案例
第17个主题: HBase Tunning(深入讲解HBase Tunning,主要从application和infra两方面来讲调优方法,及一些调优案例)(90分钟) 1、 HBase Tunning 2、 HBase Tunning从infra方面调优 3、 HBase硬件优化 4、 HBase网络优化 5、 HBase部署优化 6、 HBase配置参数优化 7、 HBase Tunning从application方面调优 8、 HBase创建表优化 9、 HBase创建列优化 10、 HBase表结构设计优化 11、 HBase表使用优化 12、 HBase高并发读写优化(MapReduce编程优化) 13、 垃圾回收优化 14、 启用压缩 15、 优化Region拆分合并以及与拆分Region 16、 客户端入库调优 17、 HBase配置文件 18、 HDFS优化部分 19、 HBase Tunning调优案例 20、 倒排索引 21、 调优案例实战:微博项目 22、 微博业务概述 23、 微博业务功能说明 24、 微博逻辑架构设计 25、 微博开发使用的组件 26、 HBase表结构设计 27、 基于HBase的微博表结构设计 28、 基于HBase的微博项目代码开发 29、 基于HBase的微博项目的总结 30、 HBase API剖析 31、 HBase研发案例分享 32、 HBase应用 33、 基于HTable的MapReduce分析 34、 HBase Filter 35、 HBase Filters 36、 SingleColumnValueFilter示例
第18个主题: HBase across cluster replication机制和对性能的影响(深入讲解HBase across cluster replication机制和对性能的影响)(90分钟) 1、 HBase across cluster replication机制和对性能的影响 2、 HBase across cluster replication机制性能能达到的时间量级 3、 HBase物理模型 4、 Client 5、 HMaster 6、 HRegionServer 7、 HRegion 8、 Store 9、 MemStore 10、 StoreFile 11、 HFile 12、 HLog 13、 数据存储结构:LSM 14、 RowKey字典顺序排列 15、 KeyValue的存储格式 16、 预分区及RowKey设计 17、 内存优化 18、 基础优化 19、 允许在HDFS的文件中追加内容 20、 优化DataNode允许的最大文件打开数 21、 优化延迟高的数据操作的等待时间 22、 优化数据的写入效率 23、 优化DataNode存储 24、 设置RPC监听数量 25、 优化HStore文件大小 26、 优化HBase客户端缓存 27、 指定 scan.next 扫描 HBase 所获取的行数 28、 flush、compact、split 机制 29、 HBase的写表优化 a) 多HTable并发写 b) HTable参数设置 c) 批量写 d) 多线程并发写 30、 HBase的读表优化 a) 多HTable并发读 b) HTable参数设置 c) Scanner Caching d) Scan Attribute Selection e) Close ResultScanner f) 批量读 g) 多线程并发读 h) 缓存查询结果 i) Blockcache 31、 HTable与HTable Pool a) HTable b) HTable Pool
第19个主题: Impala调优基础知识(深入剖析Impala实时数据探索工具)(60分钟) 1、 Impala分布式集群部署 2、 Impala分布式架构原理 3、 Impala数据模型 4、 Impala作业基本运行原理 5、 Impala使用注意事项 6、 Impala DDL、DML、SQL、函数 7、 Impala作业资源占用 8、 案例:银行在线支付统计的案例
第20个主题: Impala调优(Impala具体调优方法介绍)(60分钟) 1、 Impala调优可概述 2、 Impala参数调优 3、 Impala SQL调优 4、 Impala分区调优 5、 其他常用调优方法 6、 数据倾斜处理方法 7、 Impala与Shark、Hive、Pig区别剖析 8、 案例:Impala调优案例 |