《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 总结
参考文献

相关文章
|
7天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
3月前
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
4月前
|
消息中间件 分布式计算 大数据
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
66 0
|
4月前
|
SQL 分布式计算 大数据
【大数据技术Spark】DStream编程操作讲解实战(图文解释 附源码)
【大数据技术Spark】DStream编程操作讲解实战(图文解释 附源码)
37 0
|
4月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
82 0
|
4月前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
74 0
|
4月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
85 0
|
4月前
|
SQL 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark SQL、DataFrame、Dataset的讲解及操作演示(图文解释)
【大数据技术Hadoop+Spark】Spark SQL、DataFrame、Dataset的讲解及操作演示(图文解释)
53 0
|
4月前
|
分布式计算 大数据 Apache
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
62 0
|
4月前
|
分布式计算 大数据 Scala
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
89 1