您好,欢迎来到聚文网。 登录 免费注册
Spark核心源码分析与开发实战

Spark核心源码分析与开发实战

大数据培训名师、Spark大数据畅销书《大数据Spark企业级实战》作者王家林新作。
  • 字数: 685千字
  • 装帧: 平装
  • 出版社: 机械工业出版社
  • 作者: 王家林,王雁军,王家虎 编著
  • 出版日期: 2016-04-01
  • 商品条码: 9787111528609
  • 版次: 1
  • 开本: 16开
  • 页数: 432
  • 出版年份: 2016
定价:¥75 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书是一本全面介绍Spark以及Spark生态系统相关技术的书籍。主要包括Spark系统概述、Spark安装和集群的部署、RDD的编程实践、Spark的运行模式、Spark的运行机制以及Spark的四大子框架(Spark SQL、Spark Streaming、Spark GraphX、MLlib)的详细讲解。本书通过理论和实践相结合的方式对Spark的核心框架和生态圈做了详细的解读,不仅对Spark的原理进行详细阐述,还结合Spark的源码和案例操作展示了Spark框架的所具有的优雅和丰富的表现力。
本书适合大数据从业者、Spark技术爱好者阅读。相信通过学习本书,读者能够熟悉和掌握Spark这一当前流行的大数据计算框架,并将其投入到实践中去。
目录
前言
第1章Spark系统概述
1.1Spark是什么
1.2Spark生态系统BDAS
1.2.1SparkCore
1.2.2SparkSQL
1.2.3SparkStreaming
1.2.4SparkGraphX
1.2.5MLlib
1.2.6Tachyon
1.2.7BlinkDB
思考题
第2章Spark安装和集群部署
2.1搭建Hadoop分布式集群
2.1.1安装VMware虚拟机
2.1.2安装Ubuntu的镜像文件
2.1.3安装JDK
2.1.4搭建另外两台Ubuntu系统并配置SSH免密码登录
2.1.5安装Hadoop和搭建Hadoop分布式集群
2.2Spark安装和集群部署
2.2.1安装Scala
2.2.2安装Spark和集群部署
2.3测试Spark集群
2.3.1通过Spark提供的示例LocalPi测试Spark集群
2.3.2通过SparkShell测试Spark集群
思考题
第3章SparkRDD与SparkAPI编程实践
3.1RDD介绍
3.1.1RDD是Spark的核心抽象
3.1.2RDD的特征
3.2RDD的操作分类
3.2.1输入操作
3.2.2转换操作
3.2.3行动操作
3.2.4控制操作
3.3SparkShell下的SparkAPI编程实践
3.3.1Local模式下实践map、filter和collect方法
3.3.2集群模式下实践textFile、sortByKey和saveAstextFile方法
3.3.3集群模式下实践union、join、reduce和lookup方法
3.3.4搜狗日志数据分析实践
3.4基于IntelliJIDEA使用SparkAPI开发应用程序
3.4.1搭建和设置IntelliJIDEA开发环境
3.4.2在IntelliJIDEA下开发并部署Spark应用程序
3.4.3使用SBT编译Spark应用程序
3.4.4使用Maven构建Spark应用程序
3.4.5Spark工具
思考题
第4章Spark的运行模式
4.1Spark的运行模式概览
4.1.1Spark的基本工作流程
4.1.2Spark应用程序部署
4.2Local模式
4.2.1Local模式实例部署及运行演示
4.2.2Local模式内部实现原理
4.3Standalone模式
4.3.1Standalone模式实例部署及运行演示
4.3.2Standalone模式内部实现原理
4.4Yarn-Cluster模式
4.4.1Yarn-Cluster模式实例部署及运行演示
4.4.2Yarn-Cluster模式内部实现原理
4.5Yarn-Client模式
4.5.1Yarn-Client模式实例部署及运行演示
4.5.2Yarn-Client模式内部实现原理
4.6Mesos模式
4.6.1Mesos模式实例部署及运行演示
4.6.2Mesos模式内部实现原理
思考题
第5章Spark的运行机制
5.1Spark集群的架构
5.2Spark的作业和任务调度
5.2.1SparkApplication提交
5.2.2作业(Job)提交
5.2.3DAGScheduler划分Stage并提交
5.2.4TaskScheduler提交Task
5.2.5Executor运行Task并返回结果
5.2.6Driver的处理
5.3容错机制
5.3.1Lineage机制
5.3.2Checkpoint机制
5.4Storage存储模块
5.4.1Storage模块整体架构
5.4.2缓存实现原理
5.4.3缓存策略
5.5Spark的消息传递机制Akka
5.5.1Akka架构解析
5.5.2Akka驱动下的start-all.sh源码解析
5.6Shuffle机制
5.6.1Shuffle的原理
5.6.2Shuffle的写操作
5.6.3Shuffle的读操作
5.7共享变量
5.7.1广播变量
5.7.2累加器
5.8Spark性能调优
5.8.1数据序列化
5.8.2内存优化
5.8.3其他优化方法
思考题
第6章SparkSQL
6.1SparkSQL原理和实现
6.1.1SparkSQL简介
6.1.2SparkSQL运行架构
6.1.3Hive在Spark上的使用
6.1.4源码解析SQL语句和HiveQL语句的执行过程
6.2SparkSQL的操作实例
6.2.1文本文件操作以及DSL操作
6.2.2Parquet文件以及JSON文件操作
6.2.3Hive数据操作演示(订单交易数据操作)
6.2.4SparkSQL处理交通数据实战
思考题
第7章SparkStreaming
7.1SparkStreaming运行原理
7.1.1SparkStreaming简介
7.1.2编程模型DStream
7.1.3容错和持久化
7.1.4性能调优
7.1.5监控应用
7.2源码解析SparkStreaming的运行过程
7.2.1StreamingContext初始化并启动
7.2.2数据接收
7.2.3数据处理
7.3SparkStreaming操作实例演示
7.3.1文本数据操作实例演示
7.3.2网络数据操作实例——销售模拟器演示
7.3.3有状态(Stateful)操作实例演示
7.3.4Window操作实例演示
7.3.5SparkStreaming处理多源数据实战
思考题
第8章SparkGraphX
8.1图的定义和应用
8.1.1图的定义
8.1.2图的应用
8.2SparkGraphX简介
8.2.1弹性分布式属性图
8.2.2SparkGraphX图的切分和存储策略
8.2.3SparkGraphX图的操作
8.3SparkGraphX架构
8.3.1Pregel图计算框架
8.3.2SparkGraphX的实现
8.3.3SparkGraphX图算法的实现方法
8.4SparkGraphX图操作实例
8.4.1基于SparkGraphX的属性图的操作实例
8.4.2SparkGraphX图算法操作实例
思考题
第9章MLlib
9.1机器学习简介
9.1.1机器学习的定义
9.1.2机器学习的分类
9.1.3机器学习的常用算法
9.2MLlib的简介
9.2.1什么是MLlib
9.2.2MLlib的架构
9.2.3MLlib的数据类型
9.2.4MLlib的算法
9.3MLlib常用算法操作实践
9.3.1K-Means算法解析和实践
9.3.2协同过滤算法分析和案例实践
思考题
摘要
写作背景
2014年IDC预测,未来全球大数据市场将以每年超过30%的速度增长,而我国更快,预计将超过50%。
2014年,麦肯锡统计美国医疗行业通过大数据获得潜在价值超3000亿美元,欧洲各国利用大数据节省开支超1000亿欧元。未来在全球的交通运输、电力、医疗健康等七大领域,大数据将会撬动超过3万亿美元的市场需求。
大数据时代,各种大数据处理技术百花齐放,有基于磁盘进行数据计算的通用批处理框架MapReduce(Hadoop生态系统的大数据计算框架),有低延迟的实时流处理框架Storm,也有提供快速、交互式查询的工具Impala等多种针对不同应用场景而特殊化的处理系统。Spark作为后起之秀,采用Scala编写,底层使用Akka框架进行各个模块之间的通信,代码十分简洁。而且它立足于内存计算,以其RDD(弹性分布式数据集)模型的强大表现能力,不断完善自己的功能,逐渐形成了一套自己的生态系统,提供了Full-stack(一栈式)的解决方案。该生态系统中主要包括负责即时查询的Spark SQL、负责实时流处理的Spark Streaming、负责图计算的Spark GraphX以及机器学习子框架MLlib。由于Spark在性能和扩展性上有快速、易用、通用等特点,使它正在加速成为一体化、多元化的大数据通用计算平台和库。
Spark技术在国内外的应用越来越广泛,它正在逐渐走向成熟,并在这个领域扮演更加重要的角色。国外一些大型互联网公司已经部署了Spark。例如,一直支持Hadoop的四大商业机构(Cloudera、MapR、Hortonworks、EMC)已纷纷宣布支持Spark;Mahout(Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现)也表示,将不再接受任何形式的以MapReduce实现的算法,同时还宣布了接受基于Spark新的算法;而Cloudera的机器学习框架Oryx的执行引擎也将由Hadoop的MapReduce替换成Spark;Google也已经开始将负载从MapReduce转移到Pregel和Dremel上;Facebook 也宣布将负载转移到Presto上。而目前,国内的淘宝、优酷土豆、网易、百度、腾讯等企业在自己的商业生产系统中也已经使用Spark技术。
鉴于Spark的“One stack to rule them all”的架构理念和基于内存进行计算的性能优势,笔者有理由相信Spark作为大数据技术领域的星星之火,终将成为燎原之势。由于目前市场上介绍Spark技术的书籍比较少,我们特意编写了这本理论和实战相结合的Spark书籍,同时在介绍Spark核心技术的同时穿插了对其源代码的分析,使读者能从更深层次来把握Spark的核心技术,因为我们始终坚信Linux作者的一句话:“源码是一切问题出现的根源和一切问题解决的答案所在”。
本书内容
本书总体可以分为三大部分:第1~2章介绍Spark的生态系统、Spark集群的安装部署,第3~5章介绍Spark Core的运行原理和编程实践,第6~9章围绕Spark的四大子框架Spark SQL、Spark Streaming、Spark GraphX、MLlib的工作原理和技术特点展开了一系列的编程实践。在本书推出之前,Spark R已经作为Spark的一个新的子框架发布出来,这无疑更加快了Spark技术的成长速度。本书各章的主要内容介绍如下。
第1章:阐述了Spark的发展历程、Spark的优势和Spark的生态系统全景。
第2章:介绍了Hadoop集群和Spark集群的安装部署过程,在搭建完成Spark集群之后又通过Spark提供的示例LocalPi测试了Spark集群。
第3章:首先详细介绍RDD的概念、特征、操作分类,然后以实战的方式演示了Spark API编程实践,接着介绍了基于IntelliJ IDEA开发工具使用Spark API开发应用程序,最后分别介绍了使用SBT编译Spark应用程序和使用Maven构建Spark应用程序。
第4章:介绍了Spark的工作流程、Spark应用程序部署、Spark的各种运行模式、Spark运行模式的内部实现原理以及各种模式实例部署和运行演示。
第5章:介绍了Spark集群的架构、Spark的作业和任务调度、容错机制、存储模块和存储模块的架构、缓存实现原理、缓存策略、Spark的消息传递机制Akka的源码解析、Shuffle机制(Shuffle的读和写操作)、广播变量、累加器、Spark性能调优。
第6章:介绍了Spark SQL原理和实现、Spark SQL运行架构、Hive在Spark上的使用、源码解析SQL语句和HiveQL语句的执行过程。最后用案例深入浅出地介绍了Spark SQL的操作。
第7章:介绍了Spark Streaming运行原理、编程模型DStream、容错和持久化、性能调优、源码解析Spark Streaming的运行过程。最后用多个案例进行了Spark Streaming操作实例演示。
第8章:介绍了弹性分布式属性图、图的切分和存储策略、图的操作、图计算框架、图算法的实现方法。最后用案例演示了图的使用方法。
第9章:介绍了机器学习的概念、机器学习的分类、机器学习的常用算法、MLlib的架构、MLlib的数据类型。最后用案例介绍了机器学习的使用,包括K-Means算法解析和实战、协同过滤算法分析和案例实战。
致谢
在本书编写的过程中,作者参考了很多网络上的书籍和博客,在此谢谢各位作者,正是你们的无私奉献,才推动了Spark技术的快速发展。
感谢中国科学院深圳先进技术研究院的范小朋博士提供了自己在Spark研究过程中编写的关于Spark SQL的交通数据处理案例和Spark Streaming的流式数据处理案例。由于笔者能力有限,书中难免存在错误或表述不准确的内容,恳请大家批评指正,希望大家一起努力使Spark技术在大数据计算领域里推广开来。

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网