《Spark大数据分析:核心概念、技术及实践》一导读

简介:
前  言  Preface
本书是大数据和Spark方面的一本简明易懂的手册。它将助你学习如何用Spark来完成很多大数据分析任务。它覆盖了高效利用Spark所需要知道的一切内容。
购买本书的好处之一就是:帮你高效学习Spark,节省你大量时间。本书所覆盖的主题在互联网上都可以找到,网上有很多关于Spark的博客、PPT和视频。事实上,Spark的资料浩如烟海,你可能需要在网络上不同地方花费数月来阅读关于Spark的点滴和碎片知识。本书提供了一个更好的选择:内容组织精妙,并以易懂的形式表现出来。
本书的内容和材料的组织基于我在不同的大数据相关会议上所组织的Spark研讨会。与会者对于内容和流程方面的积极反馈激励我写了这本书。
书和研讨会的区别之一在于后者具有交互性。然而,组织过几次Spark研讨会后,我了解到了人们普遍存在的问题,我把这些内容也收录在本书中。如果阅读本书时有问题,我鼓励你们通过LinkedIn或Twitter联系我。任何问题都可以问,不存在什么“愚蠢的问题”。
本书没有覆盖Spark的每一个细节,而是包含了高效使用Spark所需要知道的重要主题。我的目标是帮你建立起坚实的基础。一旦基础牢固,就可以轻松学习一项新技术的所有细节。另外,我希望保持本书尽可能简单。如果读完本书后发现Spark看起来也挺简单的,那我的目的也就达到了。
本书中的任何主题都不要求有先验知识。本书会一步步介绍关键概念,每一节建立在前一节的基础上。同样,每一章都是下一章的基石。如果当下不需要,你可以略过后面一些章节中讲解的不同的Spark库。不过我还是鼓励你阅读所有章节。即使可能和你当前的项目不相关,那些部分也可能会给你新的灵感。
通过本书你会学到很多Spark及其相关技术的知识。然而,要充分利用本书,建议亲自运行书中所展示的例子:用代码示例做实验。当你写代码并执行时,很多事情就变得更加清晰。如果你一边阅读一边练习并用示例来实验,当读完本书时,你将成为一名基础扎实的Spark开发者。
在我开发Spark应用时,我发现了一个有用的资源—Spark官方API文档,其访问地址为http://spark.apache.org/docs/latest/api/scala。初学者可能觉得它难以理解,不过一旦你学习了基本概念后,会发现它很有用。
另一个有用的资源是Spark邮件列表。Spark社区很活跃、有用。不仅Spark开发者会回答问题,有经验的Spark用户也会志愿帮助新人。无论你遇到什么问题,很有可能Spark邮件列表中有人已经解决过这个问题了。
而且,也可以联系我,我很乐意倾听,欢迎反馈、建议和提问。

—Mohammed Guller
LinkedIn: www.linkedin.com/in/mohammedguller
Twitter: @MohammedGuller

Contents  目  录
译者序
前言
致谢
1.1.1 HDFS
1.1.2 MapReduce
1.1.3 Hive
1.2.1 Avro
1.2.2 Thrift
1.2.3 Protocol Buffers
1.2.4 SequenceFile
1.3.1 RCFile
1.3.2 ORC
1.3.3 Parquet
1.4.1 Kafka
1.4.2 ZeroMQ
1.5.1 Cassandra
1.5.2 HBase
1.6.1 Impala
1.6.2 Presto
1.6.3 Apache Drill
2.1.1 函数
2.1.2 不可变数据结构
2.1.3 一切皆表达式
2.2.1 起步
2.2.2 基础类型
2.2.3 变量
2.2.4 函数
2.2.5 类
2.2.6 单例
2.2.7 样本类
2.2.8 模式匹配
2.2.9 操作符
2.2.10 特质
2.2.11 元组
2.2.12 Option类型
2.2.13 集合
3.1.1 主要特点
3.1.2 理想的应用程序
3.2.1 worker
3.2.2 集群管理员
3.2.3 驱动程序
3.2.4 执行者
3.2.5 任务
3.3.1 术语
3.3.2 应用运行过程
3.5.1 SparkContext
3.5.2 RDD
3.5.3 创建RDD
3.5.4 RDD操作
3.5.5 保存RDD
3.7.1 RDD的缓存方法
3.7.2 RDD缓存是可容错的
3.7.3 缓存内存管理
3.9.1 广播变量
3.9.2 累加器
第4章 使用Spark shell进行交互式数据分析
4.1 起步
4.1.1 下载
4.1.2 解压
4.1.3 运行
4.2 REPL命令
4.3 把Spark shell当成Scala shell使用
4.4 数值分析
4.5 日志分析
4.6 总结
第5章 编写Spark应用
5.1 Spark中的Hello World
5.2 编译并运行应用
5.2.1 sbt
5.2.2 编译代码
5.2.3 运行应用
5.3 监控应用
5.4 调试应用
5.5 总结
第6章 Spark Streaming
6.1 Spark Streaming简介
6.1.1 Spark Streaming是一个Spark类库
6.1.2 总体架构
6.1.3 数据流来源
6.1.4 接收器
6.1.5 目的地
6.2 API
6.2.1 StreamingContext
6.2.2 Spark Streaming应用基本结构
6.2.3 DStream
6.2.4 创建DStream
6.2.5 处理数据流
6.2.6 输出操作
6.2.7 窗口操作
6.3 一个完整的Spark Streaming应用
6.4 总结
第7章 Spark SQL
7.1 Spark SQL简介
7.1.1 和其他Spark库集成
7.1.2 可用性
7.1.3 数据源
7.1.4 数据处理接口
7.1.5 与Hive的互操作性
7.2 性能
7.2.1 磁盘I/O
7.2.2 分区
7.2.3 列存储
7.2.4 内存中的列式缓存
7.2.5 行跳过
7.2.6 谓词下推
7.2.7 查询优化
7.3 应用
7.3.1 ETL
7.3.2 数据可视化
7.3.3 分布式JDBC/ODBC SQL查询引擎
7.3.4 数据仓库
7.4 API
7.4.1 关键抽象
7.4.2 创建DataFrame
7.4.3 在程序中使用SQL/HiveQL处理数据
7.4.4 使用DataFrame API处理数据
7.4.5 保存DataFrame
7.5 内置函数
7.5.1 聚合操作
7.5.2 集合操作
7.5.3 日期/时间
7.5.4 数学
7.5.5 字符串
7.5.6 窗口
7.6 UDF和UDAF
7.7 一个交互式分析的例子
7.8 使用Spark SQL JDBC服务器进行交互式分析
7.9 总结
第8章 使用Spark进行机器学习
8.1 机器学习简介
8.1.1 特征
8.1.2 标签
8.1.3 模型
8.1.4 训练数据
8.1.5 测试数据
8.1.6 机器学习应用
8.1.7 机器学习算法
8.1.8 超参数
8.1.9 模型评价
8.1.10 机器学习的主要步骤
8.2 Spark机器学习库
8.3 MLlib概览
8.3.1 与其他Spark库集成
8.3.2 统计工具
8.3.3 机器学习算法
8.4 MLlib API
8.4.1 数据类型
8.4.2 算法和模型
8.4.3 模型评价
8.5 MLlib示例应用
8.5.1 数据集
8.5.2 目标
8.5.3 代码
8.6 Spark ML
8.6.1 ML数据集
8.6.2 Transformer
8.6.3 Estimator
8.6.4 Pipeline
8.6.5 PipelineModel
8.6.6 Evaluator
8.6.7 网格搜索
8.6.8 CrossValidator
8.7 Spark ML示例应用
8.7.1 数据集
8.7.2 目标
8.7.3 代码
8.8 总结
第9章 使用Spark进行图处理
9.1 图简介
9.1.1 无向图
9.1.2 有向图
9.1.3 有向多边图
9.1.4 属性图
9.2 GraphX简介
9.3 GraphX API
9.3.1 数据抽象
9.3.2 创建图
9.3.3 图属性
9.3.4 图操作符
9.4 总结
第10章 集群管理员
10.1 独立集群管理员
10.1.1 架构
10.1.2 建立一个独立集群
10.1.3 在独立集群中运行Spark应用
10.2 Apache Mesos
10.2.1 架构
10.2.2 建立一个Mesos集群
10.2.3 在Mesos集群上运行Spark应用
10.3 YARN
10.3.1 架构
10.3.2 在YARN集群上运行Spark应用
10.4 总结
第11章 监控
11.1 监控独立集群
11.1.1 监控Spark master
11.1.2 监控Spark worker
11.2 监控Spark应用
11.2.1 监控一个应用所运行的作业
11.2.2 监控一个作业的不同阶段
11.2.3 监控一个阶段中的任务
11.2.4 监控RDD存储
11.2.5 监控环境
11.2.6 监控执行者
11.2.7 监控Spark流应用
11.2.8 监控Spark SQL查询
11.2.9 监控Spark SQL JDBC/ODBC服务器
11.3 总结
参考文献

相关文章
|
3月前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
146 1
Spark快速大数据分析PDF下载读书分享推荐
|
5月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
241 0
|
5月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
706 1
|
1月前
|
分布式计算 Java Apache
Apache Spark Streaming技术深度解析
【9月更文挑战第4天】Apache Spark Streaming是Apache Spark生态系统中用于处理实时数据流的一个重要组件。它将输入数据分成小批次(micro-batch),然后利用Spark的批处理引擎进行处理,从而结合了批处理和流处理的优点。这种处理方式使得Spark Streaming既能够保持高吞吐量,又能够处理实时数据流。
65 0
|
3月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
379 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
3月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
127 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
2月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
181 0
|
3月前
|
分布式计算 Hadoop Serverless
数据处理的艺术:EMR Serverless Spark实践及应用体验
阿里云EMR Serverless Spark是基于Spark的全托管大数据处理平台,融合云原生弹性与自动化,提供任务全生命周期管理,让数据工程师专注数据分析。它内置高性能Fusion Engine,性能比开源Spark提升200%,并有成本优化的Celeborn服务。支持计算存储分离、OSS-HDFS兼容、DLF元数据管理,实现一站式的开发体验和Serverless资源管理。适用于数据报表、科学项目等场景,简化开发与运维流程。用户可通过阿里云控制台快速配置和体验EMR Serverless Spark服务。
|
4月前
|
分布式计算 运维 Serverless
通过Serverless Spark提交PySpark流任务的实践体验
EMR Serverless Spark服务是阿里云推出的一种全托管、一站式的数据计算平台,旨在简化大数据计算的工作流程,让用户更加专注于数据分析和价值提炼,而非基础设施的管理和运维。下面就跟我一起通过Serverless Spark提交PySpark流任务吧。
197 1
|
4月前
|
分布式计算 Hadoop 大数据
大数据技术:Hadoop与Spark的对比
【6月更文挑战第15天】**Hadoop与Spark对比摘要** Hadoop是分布式系统基础架构,擅长处理大规模批处理任务,依赖HDFS和MapReduce,具有高可靠性和生态多样性。Spark是快速数据处理引擎,侧重内存计算,提供多语言接口,支持机器学习和流处理,处理速度远超Hadoop,适合实时分析和交互式查询。两者在资源占用和生态系统上有差异,适用于不同应用场景。选择时需依据具体需求。