Spark快速大数据分析pdf

图书网 2018年12月24日12:01:28
评论
1.9K

《Spark快速大数据分析》是一本为Spark初学者准备的书,它没有过多深入实现细节,而是更多关注上层用户的具体用法。不过,本书绝不仅仅限于Spark的用法,它对Spark的核心概念和基本原理也有较为全面的介绍,让读者能够知其然且知其所以然。

本书介绍了开源集群计算系统Apache Spark,它可以加速数据分析的实现和运行。利用Spark,你可以用Python、Java以及Scala的简易API来快速操控大规模数据集。

本书由Spark开发者编写,可以让数据科学家和工程师即刻上手。你能学到如何使用简短的代码实现复杂的并行作业,还能了解从简单的批处理作业到流处理以及机器学习等应用。

Spark快速大数据分析 内容简介

《Spark快速大数据分析》由 Spark 开发者及核心成员共同打造,讲解了网络大数据时代应运而生的、能高效迅捷地分析处理数据的工具——Spark,它带领读者快速掌握用 Spark 收集、计算、简化和保存海量数据的方法,学会交互、迭代和增量式分析,解决分区、数据本地化和自定义序列化等问题。

Spark快速大数据分析 目录

推荐序  xi

译者序  xiv

序  xvi

前言  xvii

第1章 Spark数据分析导论  1

1.1 Spark是什么  1

1.2 一个大一统的软件栈  2

1.2.1 Spark Core  2

1.2.2 Spark SQL  3

1.2.3 Spark Streaming  3

1.2.4 MLlib  3

1.2.5 GraphX  3

1.2.6 集群管理器  4

1.3 Spark的用户和用途  4

1.3.1 数据科学任务  4

1.3.2 数据处理应用  5

1.4 Spark简史  5

1.5 Spark的版本和发布  6

1.6 Spark的存储层次  6

第2章 Spark下载与入门  7

2.1 下载Spark  7

2.2 Spark中Python和Scala的shell  9

2.3 Spark 核心概念简介  12

2.4 独立应用  14

2.4.1 初始化SparkContext  15

2.4.2 构建独立应用  16

2.5 总结  19

第3章 RDD编程  21

3.1 RDD基础  21

3.2 创建RDD  23

3.3 RDD操作  24

3.3.1 转化操作  24

3.3.2 行动操作  26

3.3.3 惰性求值  27

3.4 向Spark传递函数  27

3.4.1 Python  27

3.4.2 Scala  28

3.4.3 Java  29

3.5 常见的转化操作和行动操作  30

3.5.1 基本RDD  30

3.5.2 在不同RDD类型间转换  37

3.6 持久化( 缓存)  39

3.7 总结  40

第4章 键值对操作  41

4.1 动机  41

4.2 创建Pair RDD  42

4.3 Pair RDD的转化操作  42

4.3.1 聚合操作  45

4.3.2 数据分组  49

4.3.3 连接  50

4.3.4 数据排序  51

4.4 Pair RDD的行动操作  52

4.5 数据分区(进阶)  52

4.5.1 获取RDD的分区方式  55

4.5.2 从分区中获益的操作  56

4.5.3 影响分区方式的操作  57

4.5.4 示例:PageRank  57

4.5.5 自定义分区方式  59

4.6 总结  61

第5章 数据读取与保存  63

5.1 动机  63

5.2 文件格式  64

5.2.1 文本文件  64

5.2.2 JSON  66

5.2.3 逗号分隔值与制表符分隔值  68

5.2.4 SequenceFile  71

5.2.5 对象文件  73

5.2.6 Hadoop输入输出格式  73

5.2.7 文件压缩  77

5.3 文件系统  78

5.3.1 本地/“常规”文件系统  78

5.3.2 Amazon S3  78

5.3.3 HDFS  79

5.4 Spark SQL中的结构化数据  79

5.4.1 Apache Hive  80

5.4.2 JSON  80

5.5 数据库  81

5.5.1 Java数据库连接  81

5.5.2 Cassandra  82

5.5.3 HBase  84

5.5.4 Elasticsearch  85

5.6 总结  86

第6章 Spark编程进阶  87

6.1 简介  87

6.2 累加器  88

6.2.1 累加器与容错性  90

6.2.2 自定义累加器  91

6.3 广播变量  91

6.4 基于分区进行操作  94

6.5 与外部程序间的管道  96

6.6 数值RDD 的操作  99

6.7 总结  100

第7章 在集群上运行Spark  101

7.1 简介  101

7.2 Spark运行时架构  101

7.2.1 驱动器节点  102

7.2.2 执行器节点  103

7.2.3 集群管理器  103

7.2.4 启动一个程序  104

7.2.5 小结  104

7.3 使用spark-submit 部署应用  105

7.4 打包代码与依赖  107

7.4.1 使用Maven构建的用Java编写的Spark应用  108

7.4.2 使用sbt构建的用Scala编写的Spark应用  109

7.4.3 依赖冲突   111

7.5 Spark应用内与应用间调度  111

7.6 集群管理器  112

7.6.1 独立集群管理器  112

7.6.2 Hadoop YARN  115

7.6.3 Apache Mesos  116

7.6.4 Amazon EC2  117

7.7 选择合适的集群管理器  120

7.8 总结  121

第8章 Spark调优与调试  123

8.1 使用SparkConf配置Spark  123

8.2 Spark执行的组成部分:作业、任务和步骤  127

8.3 查找信息  131

8.3.1 Spark网页用户界面  131

8.3.2 驱动器进程和执行器进程的日志  134

8.4 关键性能考量  135

8.4.1 并行度  135

8.4.2 序列化格式  136

8.4.3 内存管理  137

8.4.4 硬件供给  138

8.5 总结  139

第9章 Spark SQL  141

9.1 连接Spark SQL  142

9.2 在应用中使用Spark SQL  144

9.2.1 初始化Spark SQL  144

9.2.2 基本查询示例  145

9.2.3 SchemaRDD  146

9.2.4 缓存  148

9.3 读取和存储数据  149

9.3.1 Apache Hive  149

9.3.2 Parquet  150

9.3.3 JSON  150

9.3.4 基于RDD  152

9.4 JDBC/ODBC服务器  153

9.4.1 使用Beeline  155

9.4.2 长生命周期的表与查询  156

9.5 用户自定义函数  156

9.5.1 Spark SQL UDF  156

9.5.2 Hive UDF  157

9.6 Spark SQL性能  158

9.7 总结  159

第10章 Spark Streaming  161

10.1 一个简单的例子  162

10.2 架构与抽象  164

10.3 转化操作  167

10.3.1 无状态转化操作  167

10.3.2 有状态转化操作  169

10.4 输出操作  173

10.5 输入源  175

10.5.1 核心数据源  175

10.5.2 附加数据源  176

10.5.3 多数据源与集群规模  179

10.6 24/7不间断运行  180

10.6.1 检查点机制  180

10.6.2 驱动器程序容错  181

10.6.3 工作节点容错  182

10.6.4 接收器容错  182

10.6.5 处理保证  183

10.7 Streaming用户界面  183

10.8 性能考量  184

10.8.1 批次和窗口大小  184

10.8.2 并行度  184

10.8.3 垃圾回收和内存使用  185

10.9 总结  185

第11章 基于MLlib的机器学习  187

11.1 概述  187

11.2 系统要求  188

11.3 机器学习基础  189

11.4 数据类型  192

11.5 算法  194

11.5.1 特征提取  194

11.5.2 统计  196

11.5.3 分类与回归  197

11.5.4 聚类  202

11.5.5 协同过滤与推荐  203

11.5.6 降维  204

11.5.7 模型评估  206

11.6 一些提示与性能考量  206

11.6.1 准备特征  206

11.6.2 配置算法  207

11.6.3 缓存RDD以重复使用  207

11.6.4 识别稀疏程度  207

11.6.5 并行度  207

11.7 流水线API  208

11.8 总结  209

作者简介  210

封面介绍  210

Spark快速大数据分析 精彩文摘

Spark简史

Spark 是由一个强大而活跃的开源社区开发和维护的,社区中的开发者们来自许许多多不同的机构。如果你或者你所在的机构是第一次尝试使用 Spark,也许你会对 Spark 这个项目的历史感兴趣。Spark 是于 2009 年作为一个研究项目在加州大学伯克利分校 RAD 实验室(AMPLab 的前身)诞生。实验室中的一些研究人员曾经用过 Hadoop MapReduce。他们发现 MapReduce 在迭代计算和交互计算的任务上表现得效率低下。因此,Spark 从一开始就是为交互式查询和迭代算法设计的,同时还支持内存式存储和高效的容错机制。

2009 年,关于 Spark 的研究论文在学术会议上发表,同年 Spark 项目正式诞生。其后不久,相比于 MapReduce,Spark 在某些任务上已经获得了 10 ~ 20 倍的性能提升。

Spark 最早的一部分用户来自加州伯克利分校的其他研究小组,其中比较著名的有 Mobile Millennium。作为机器学习领域的研究项目,他们利用 Spark 来监控并预测旧金山湾区的交通拥堵情况。仅仅过了短短的一段时间,许多外部机构也开始使用 Spark。如今,有超过 50 个机构将自己添加到了使用 Spark 的机构列表页面。在 Spark 社区如火如荼的社区活动 Spark Meetups和 Spark 峰会中,许多机构也向大家积极分享他们特有的 Spark 应用场景。除了加州大学伯克利分校,对 Spark 作出贡献的主要机构还有 Databricks、雅虎以及英特尔。

2011 年,AMPLab 开始基于 Spark 开发更高层的组件,比如 Shark(Spark 上的 Hive)1 和 Spark Streaming。这些组件和其他一些组件一起被称为伯克利数据分析工具栈(BDAS,https://amplab.cs.berkeley.edu/software/)。

1Shark 已经被 Spark SQL 所取代。

Spark 最早在 2010 年 3 月开源,并且在 2013 年 6 月交给了 Apache 基金会,现在已经成了 Apache 开源基金会的顶级项目。

Spark的版本和发布

自其出现以来,Spark 就一直是一个非常活跃的项目,Spark 社区也一直保持着非常繁荣的态势。随着版本号的不断更迭,Spark 的贡献者也与日俱增。Spark 1.0 吸引了 100 多个开源程序员参与开发。尽管项目活跃度在飞速地提升,Spark 社区依然保持着常规的发布新版本的节奏。2014 年 5 月,Spark 1.0 正式发布,而本书则主要关注 Spark 1.1.0 以及后续的版本。不过,大多数概念在老版本的 Spark 中依然适用,而大多数示例也能运行在老版本的 Spark 上。

Spark的存储层次

Spark 不仅可以将任何 Hadoop 分布式文件系统(HDFS)上的文件读取为分布式数据集,也可以支持其他支持 Hadoop 接口的系统,比如本地文件、亚马逊 S3、Cassandra、Hive、HBase 等。我们需要弄清楚的是,Hadoop 并非 Spark 的必要条件,Spark 支持任何实现了 Hadoop 接口的存储系统。Spark 支持的 Hadoop 输入格式包括文本文件、SequenceFile、Avro、Parquet 等。我们会在第 5 章讨论读取和存储时详细介绍如何与这些数据源进行交互。

图书网:Spark快速大数据分析pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

影印版

精通MATLAB科学计算与数据统计应用pdf

341个精心设计的MATLAB应用实战案例。 103个精心编写的MATLAB工具箱函数。 4个精心挑选的MATLAB工程性综合案例。 理论知识与应用案例的无缝连接,体现出科学计算在...
影印版

一本书读懂大数据时代pdf

◆大数据=大决策,本书将带你从巨量资料中找到人潮、钱潮、资讯潮! ◆一本改变读者在复杂的社会时代寻找因果关系的思维变革指南书! ◆一本帮助读者在互联网时代有效使用大数据工具的行为指...
影印版

Flink基础教程pdf

作为新一代的开源流处理器,Flink是众多大数据处理框架中一颗冉冉升起的新星。它以同一种技术支持流处理和批处理,并能同时满足高吞吐、低延迟和容错的需求。本书由Flink项目核心成员...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: