课程简介
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark采用了内存分布数据集,能更好地适用于数据挖掘与机器学习等需要迭代的算法。Spark 主要有三个优点:一是封装高级API剥离了对集群本身的关注,Spark应用开发者可以专注于解决业务问题;二是Spark 很快,支持交互式计算和复杂算法;三是Spark 是一个通用引擎,可用它来完成各种各样的运算,包括SQL查询、文本处理、机器学习等,而在Spark出现之前一般需要学习各种各样的引擎来分别处理这些需求。
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化存储集群。HBase是一个分布式的、面向列的开源数据库,该技术来源于Google论文Bigtable(一个结构化数据的分布式存储系统),Bigtable利用了Google文件系统(GFS)所提供的分布式数据存储一样,HBase在Hadoop的分布式文件系统(HDFS)之上提供了类似于Bigtable的能力。HBase不同于一般的关系型数据库,它是一个适合于非结构化数据存储的数据库。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。
本课程重点讲解Spark、HBase调优案例,让学员通过案例深入讲解Spark、HBase调优。
课程目标
1、 Spark struct streaming使用场景,优点和缺点(相比于Spark streaming);
2、 Spark streaming的两种模式(direct和receiver)的对比,及其各自的优缺点;
3、 Spark SQL执行计划讲解和一些优化的经验(最好能讲几个调优的案例);
4、 HBase表设计原则(遵循什么原则才能达到性能最大化);
5、 HBase Tunning(主要从application和infra两方面来讲),及一些调优案例;
6、 HBase across cluster replication机制和对性能的影响,能达到的时间量级。
7、 YARN资源管理讲解。
课程对象
1、 对大数据、分布式存储Spark、HBase等感兴趣的人员;
2、 云计算、大数据从业者;
3、 熟悉Hadoop生态体系,想了解和学习Hadoop与Spark、HBase整合在企业应用实战案例的人员;
4、 系统架构师、系统分析师、高级程序员、资深开发人员;
5、 牵涉到大数据处理的数据中心运行、规划、设计负责人;
6、 政府机关,金融保险、移动互联网等大数据单位的负责人;
7、 高校、科研院所大数据研究人员,涉及到大数据与分布式数据处理的人员;
8、 数据仓库管理人员、建模人员,分析和开发人员、系统管理人员、数据库管理人员以及对数据仓库感兴趣的其他人员;
课程形式
以课堂讲解、演示、案例分析为主,辅以互动研讨、现场答疑、学以致用。
课程大纲
时间 | 内容 |
第 一 天 |
第1个主题: Spark Structured Streaming使用场景,优点和缺点(深入讲解Spark Structured Streaming使用场景,优点和缺点)(120分钟) 1、 Spark Structured Streaming使用场景 2、 Spark Streaming不足 3、 Structured Streaming介绍 4、 复用Spark SQL执行引擎 5、 Structured Streaming 核心设计 6、 输入输出 7、 API 8、 执行引擎 9、 操作的特征 10、 Structured Streaming 编程模型 11、 Continuous Processing Mode 12、 一致性语义 13、 Benchmark 14、 Spark Structured Streaming优点和缺点(相比于Spark streaming)
第2个主题: Spark streaming的两种模式的对比及其各自的优缺点(深入讲解Spark streaming的两种模式的对比及其各自的优缺点)(120分钟) 1、 Spark streaming的两种模式:direct和receiver 2、 Receiver模式与Direct模式两种模式的原理和区别 3、 Spark streaming的两种模式的对比 4、 Receiver模式下的运行架构 5、 Receiver从kafka拉取数据的过程 6、 Direct模式下的运行架构 7、 Direct从kafka拉取数据的过程 8、 Receiver模式与Direct模式的区别 9、 Receiver改造成Direct模式 10、 Spark streaming的两种模式各自的优缺点
第3个主题: Spark SQL执行计划讲解和优化经验(深入讲解Spark SQL执行计划和一些优化的经验)(120分钟) 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优化的经验分享
|
时间 | 内容 |
第 二 天 |
第4个主题: 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表结构设计应用案例
第5个主题: 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示例
第6个主题: 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
第7个主题: YARN资源管理讲解(深入讲解YARN资源管理讲解)(90分钟) 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的运行原理 |