大数据Spark企业级实战作者:Spark亚太研究院,王家林 编著出版时间:2015年版内容简介 Spark是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台,是Apache软件基金会下所有开源项目中三大顶级开源项目之一。在“One Stack to rule them all”理念的指引下,Spark基于RDD成功地构建起了大数据处理的一体化解决方案,将MapReduce、Streaming、SQL、Machine Learning、Graph Processing等大数据计算模型统一到一个技术堆栈中,开发者使用一致的API操作Spark中的所有功能;更为重要的是Spark的Spark SQL、MLlib、GraphX、Spark Streaming等四大子框架之间可以在内存中完美地无缝集成并可以互相操作彼此的数据,这不仅打造了Spark在当今大数据计算领域其他任何计算框架都无可匹敌的优势,更使得Spark正在加速成为大数据处理中心首选的和唯一的计算平台。本书详细解析了企业级Spark开发所需的几乎所有技术内容,涵盖Spark的架构设计、Spark的集群搭建、Spark内核的解析、Spark SQL、MLlib、GraphX、Spark Streaming、Tachyon、SparkR、Spark多语言编程、Spark常见问题及调优等,并且结合Spark源码细致地解析了Spark内核和四大子框架,最后在附录中提供了Spark的开发语言Scala快速入门实战内容,学习完此书即可胜任绝大多数的企业级Spark开发需求。目录第1章 Spark编程模型 11.1 Spark:一体化、多元化的高速大数据通用计算平台和库 11.1.1 为什么需要使用Spark 51.1.2 Spark技术生态系统简介 91.2 Spark大数据处理框架 201.2.1 Spark速度为何如此之快 201.2.2 RDD:分布式函数式编程 241.3 Spark子框架解析 281.3.1 图计算框架Spark GraphX 281.3.2 实时流处理框架(Spark Streaming) 411.3.3 交互式SQL处理框架Spark SQL 461.3.4 机器学习框架(Spark MLlib) 49第2章 构建Spark分布式集群 552.1 搭建Hadoop单机版本和伪分布式开发环境 552.1.1 开发Hadoop需要的基本软件 562.1.2 安装每个软件 582.1.3 配置Hadoop单机模式并运行Wordcount示例 762.1.4 配置Hadoop伪分布模式并运行Wordcount示例 842.2 搭建 Hadoop分布式集群 922.2.1 在VMWare 中准备第二、第三台运行Ubuntu系统的机器 922.2.2 按照配置伪分布式模式的方式配置新创建运行Ubuntu系统的机器 932.2.3 配置Hadoop分布式集群环境 942.2.4 测试Hadoop分布式集群环境 1052.3 Spark集群的动手搭建 1082.3.1 Spark集群需要的软件 1082.3.2 安装每个软件 1102.3.3 启动并查看集群的状况 1162.4 构建Hadoop单机版本和伪分布式环境 1202.4.1 通过Spark的shell测试Spark的工作 1212.4.2 使用Spark的cache机制观察一下效率的提升 125第3章 Spark开发环境及其测试 1293.1 搭建和设置IDEA开发环境 1293.1.1 构建Spark的IDE开发环境 1293.1.2 配置Spark的IDE开发环境 1323.2 测试IDEA环境 1463.3 实战:在IDEA中开发代码,并运行在Spark集群中 148第4章 Spark RDD与编程API实战 1594.1 深度解析Spark RDD 1594.2 Transformation Operations动手实战 1654.3 Action Operations动手实战 1754.4 Spark API综合实战 179第5章 Spark运行模式深入解析 1915.1 Spark运行模式概述 1925.1.1 Spark的运行模式列表 1965.1.2 Spark的基本工作流程 1975.2 Standalone模式 2015.2.1 部署及程序运行 2025.2.2 内部实现原理 2065.3 Yarn-Cluster模式 2345.3.1 部署及程序运行 2355.3.2 内部实现原理 2375.4 Yarn-Client模式 2435.4.1 部署及运行程序 2435.4.2 内部实现原理 244第6章 Spark内核解析 2476.1 Spark内核初探 2476.1.1 Spark内核核心术语解析 2476.1.2 Spark集群概览 2506.1.3 Spark核心组件 2516.1.4 Spark任务调度系统初见 2526.2 Spark内核核心源码解读 2566.2.1 SparkContext核心源码解析初体验 2566.2.2 TaskSceduler启动源码解析初体验 2606.2.3 DAGScheduler源码解读初体验 2616.2.4 Spark的Web监控页面 2626.3 以RDD的count操作为例触发Job全生命周期源码研究 2636.4 Akka驱动下的Driver、Master、Worker 2766.4.1 Driver中的AppClient源码解析 2766.4.2 AppClient注册Master 2796.4.3 Worker中Executor启动过程源代码解析 282第7章 GraphX大规模图计算与图挖掘实战 2877.1 Spark GraphX概览 2887.2 Spark GraphX设计实现的核心原理 2917.3 Table operator和Graph Operator 2957.4 Vertices、edges、triplets 2967.5 以最原始的方式构建graph 2997.6 动手编写第一个Graph代码实例并进行Vertices、edges、triplets操作 2997.7 在Spark集群上使用文件中的数据加载成为graph并进行操作 3107.8 在Spark集群上掌握比较重要的图操作 3207.9 Spark GraphX图算法 3427.10 淘宝对Spark GraphX的大规模使用 347第8章 Spark SQL原理与实战 3498.1 为什么使用Spark SQL 3498.1.1 Spark SQL的发展历程 3498.1.2 Spark SQL的性能 3518.2 Spark SQL运行架构 3558.2.1 Tree和Rule 3578.2.2 sqlContext的运行过程 3608.2.3 hiveContext的运行过程 3628.2.4 catalyst优化器 3658.3 解析Spark SQL组件 3678.3.1 LogicalPlan 3678.3.2 SqlParser 3708.3.3 Analyzer 3788.3.4 Optimizer 3818.4 深入了解Spark SQL运行的计划 3838.4.1 hive/console的安装过程和原理 3838.4.2 常用操作 3868.4.3 不同数据源的运行计划 3888.4.4 不同查询的运行计划 3918.4.5 查询的优化 3938.5 搭建测试环境 3968.5.1 搭建虚拟集群(Hadoop1、Hadoop2、Hadoop3) 3978.5.2 搭建客户端 3988.5.3 文件数据的准备工作 3998.5.4 Hive数据的准备工作 3998.6 Spark SQL之基础应用 4008.6.1 sqlContext的基础应用 4028.6.2 hiveContext的基础应用 4058.6.3 混合使用 4088.6.4 缓存的使用 4098.6.5 DSL的使用 4108.7 ThriftServer和CLI 4118.7.1 令人惊讶的CLI 4118.7.2 ThriftServer 4148.8 Spark SQL之综合应用 4188.8.1 店铺分类 4198.8.2 PageRank 4218.9 Spark SQL之调优 4248.9.1 并行性 4248.9.2 高效的数据格式 4258.9.3 内存的使用 4278.9.4 合适的Task 4288.9.5 其他的一些建议 428第9章 Machine Learning on Spark 4319.1 Spark MLlib机器学习 4319.1.1 机器学习快速入门 4329.1.2 Spark MLlib介绍 4429.1.3 Spark MLlib架构解析 4479.1.4 Spark Mllib核心解析 4589.2 MLlib经典算法解析和案例实战 4629.2.1 Linear Regression解析和实战 4629.2.2 K-Means解析和实战 4849.2.3 协同过滤算法分析和案例实战 5029.3 MLLib其他常用算法解析和代码实战 5529.3.1 Basic Statics解析和实战 5539.3.2 MLlib朴素贝叶斯解析和实战 5609.3.3 MLlib决策树解析和实战 562第10章 Tachyon文件系统 56510.1 Tachyon文件系统概述 56510.1.1 Tachyon文件系统简介 56510.1.2 HDFS与Tachyon 56610.1.3 Tachyon设计原理 56810.2 Tachyon入门 56810.2.1 Tachyon部署 56810.2.2 Tachyon API的使用 57010.2.3 在MapReduce、Spark上使用Tachyon 57210.3 Tachyon深度解析 57310.3.1 Tachyon整体设计概述 57310.3.2 Tachyon Master启动流程分析 57410.3.3 Tachyon Worker启动流程分析 57710.3.4 客户端读写文件源码分析 57710.4 Tachyon配置参数一览 57910.5 小结 580第11章 Spark Streaming原理与实战 58111.1 Spark Streaming原理 58111.1.1 原理和运行场景 58111.1.2 编程模型DStream 58411.1.3 持 上一篇: MATLAB神经网络应用设计 第二版 下一篇: Hadoop源代码分析 第二版(修订版)