自助广告
立即入驻
大数据书籍 Big data books

Spark大数据分析实战

基于Spark2.4.x新版本编撰,通俗易懂,无痛上手结合丰富案例详解Spark生态系统主流的大数据处理技术

基于Spark2.4.x新版本编撰,通俗易懂,无痛上手结合丰富案例详解Spark生态系统主流的大数据处理技术。

编辑推荐

本书基于Spark 2.4.x新版本编写,涵盖当前整个Spark生态系统主流的大数据处理技术,以实操案例为主,理论为辅,一步一步手把手对常用的Spark离线计算及实时计算等系统进行详细论述。

内容简介

本书基于Spark 2.4.x新版本编写,从Spark核心编程语言Scala讲起,涵盖当前整个Spark生态系统主流的大数据开发技术。全书共9章,第1章讲解Scala语言的基础知识,包括IDEA工具的使用等;第2章讲解Spark的主要组件、集群架构原理、集群环境搭建以及Spark应用程序的提交和运行;第3~9章讲解离线计算框架Spark RDD、Spark SQL和实时计算框架Kafka、Spark Streaming、Structured Streaming以及图计算框架GraphX等的基础知识、架构原理,同时包括常用Shell命令、API操作、内核源码剖析,并通过多个实际案例讲解各个框架的具体应用以及与Hadoop生态系统框架Hive、HBase、Kafka的整合操作。

本书内容丰富,以实操案例为主,理论为辅,可作为Spark新手的入门书,也可作为大数据开发人员和从业者的学习用书,还可以作为培训机构或大中专院校的教学用书。

作者简介

张伟洋

大数据领域资深专家,拥有多年顶j互联网公司软件研发经验,曾在互联网旅游公司任软件研发事业部经理。目前从事大数据项目讲师工作,先后多次给各大高校举行大数据专题讲座,对Hadoop及周边大数据框架ZooKeeper、Hive、HBase、Storm、Spark、Flink等有着深入的研究。高等院校云计算与大数据专业课改教材《云计算与大数据概论》《大数据开发与应用》的主要编写者。

目录

第1章 Spark开发准备——Scala基础 1

1.1 什么是SCALA 1

1.2 安装SCALA 2

1.2.1 在Windows中安装Scala 2

1.2.2 在CentOS 7中安装Scala 3

1.3 SCALA基础 4

1.3.1 变量声明 4

1.3.2 数据类型 5

1.3.3 表达式 7

1.3.4 循 环 8

1.3.5 方法与函数 10

1.4 集 合 14

1.4.1 数 组 14

1.4.2 List 16

1.4.3 Map映射 17

1.4.4 元 组 19

1.4.5 Set 20

1.5 类和对象 21

1.5.1 类的定义 21

1.5.2 单例对象 22

1.5.3 伴生对象 22

1.5.4 get和set方法 23

1.5.5 构造器 25

1.6 抽象类和特质 28

1.6.1 抽象类 28

1.6.2 特 质 30

1.7 使用ECLIPSE创建SCALA项目 31

1.7.1 安装Scala for Eclipse IDE 31

1.7.2 创建Scala项目 33

1.8 使用INTELLIJ IDEA创建SCALA项目 33

1.8.1 在IDEA中安装Scala插件 34

1.8.2 创建Scala项目 37

第2章 初识Spark 40

2.1 大数据开发总体架构 40

2.2 什么是SPARK 42

2.3 SPARK主要组件 43

2.4 SPARK运行 45

2.4.1 YARN集群架构 45

2.4.2 Spark Standalone架构 49

2.4.3 Spark On YARN架构 50

2.5 SPARK集群搭建与测试 53

2.5.1 Spark Standalone模式的集群搭建 53

2.5.2 Spark On YARN模式的集群搭建 55

2.5.3 Spark HA的搭建 56

2.6 SPARK应用程序的提交 60

2.7 SPARK SHELL的使用 63

第3章 Spark RDD弹性分布式数据集 66

3.1 什么是RDD 66

3.2 创建RDD 67

3.2.1 从对象集合创建RDD 67

3.2.2 从外部存储创建RDD 68

3.3 RDD的算子 69

3.3.1 转化算子 69

3.3.2 行动算子 77

3.4 RDD的分区 78

3.4.1 分区数量 79

3.4.2 自定义分区器 88

3.5 RDD的依赖 93

3.5.1 窄依赖 94

3.5.2 宽依赖 94

3.5.3 Stage划分 95

3.6 RDD的持久化 97

3.6.1 存储级别 98

3.6.2 查看缓存 100

3.7 RDD的检查点 102

3.8 共享变量 104

3.8.1 广播变量 104

3.8.2 累加器 106

3.9 案例分析:SPARK RDD实现单词计数 107

3.10 案例分析:SPARK RDD实现分组求TOPN 116

3.11 案例分析:SPARK RDD实现二次排序 120

3.12 案例分析:SPARK RDD计算成绩平均分 124

3.13 案例分析:SPARK RDD倒排索引统计每日新增用户 126

3.14 案例分析:SPARK RDD读写HBASE 130

3.14.1 读取HBase表数据 131

3.14.2 写入HBase表数据 134

3.15 案例分析:SPARK RDD数据倾斜问题解决 143

3.15.1 数据倾斜的常用解决方法 144

3.15.2 使用随机key进行双重聚合 145

3.15.3 WebUI查看Spark历史作业 149

第4章 Spark内核源码分析 151

4.1 SPARK集群启动原理分析 151

4.2 SPARK应用程序提交原理分析 162

4.3 SPARK作业工作原理分析 175

4.3.1 MapReduce的工作原理 175

4.3.2 Spark作业工作的原理 177

4.4 SPARK检查点原理分析 191

第5章 Spark SQL结构化数据处理引擎 196

5.1 什么是SPARK SQL 196

5.2 DATAFRAME和DATASET 197

5.3 SPARK SQL的基本使用 198

5.4 SPARK SQL数据源 201

5.4.1 基本操作 201

5.4.2 Parquet文件 206

5.4.3 JSON数据集 209

5.4.4 Hive表 211

5.4.5 JDBC 213

5.5 SPARK SQL内置函数 214

5.5.1 自定义函数 216

5.5.2 自定义聚合函数 218

5.5.3 开窗函数 220

5.6 案例分析:使用SPARK SQL实现单词计数 223

5.7 案例分析:SPARK SQL与HIVE整合 228

5.7.1 整合Hive的步骤 228

5.7.2 操作Hive的几种方式 231

5.8 案例分析:SPARK SQL读写MYSQL 233

5.9 案例分析:SPARK SQL每日UV统计 238

5.10 案例分析:SPARK SQL热点搜索词统计 241

5.11 综合案例:SPARK SQL智慧交通数据分析 244

5.11.1 项目介绍 244

5.11.2 数据准备 246

5.11.3 统计正常卡口数量 249

5.11.4 统计车流量排名前3的卡口号 249

5.11.5 统计车辆高速通过的卡口TOP5 250

5.11.6 统计每个卡口通过速度最快的前3辆车 254

5.11.7 车辆轨迹分析 255

第6章 Kafka分布式消息系统 256

6.1 什么是KAFKA 256

6.2 KAFKA架构 257

6.3 主题与分区 259

6.4 分区副本 260

6.5 消费者组 262

6.6 数据存储机制 264

6.7 集群环境搭建 266

6.8 命令行操作 268

6.8.1 创建主题 268

6.8.2 查询主题 269

6.8.3 创建生产者 269

6.8.4 创建消费者 270

6.9 JAVA API操作 271

6.9.1 创建Java工程 271

6.9.2 创建生产者 271

6.9.3 创建消费者 273

6.9.4 运行程序 275

6.10 案例分析:KAFKA生产者拦截器 277

第7章 Spark Streaming实时流处理引擎 285

7.1 什么是SPARK STREAMING 285

7.2 SPARK STREAMING工作原理 286

7.3 输入DSTREAM和RECEIVER 287

7.4 第一个SPARK STREAMING程序 288

7.5 SPARK STREAMING数据源 290

7.5.1 基本数据源 290

7.5.2 高级数据源 292

7.5.3 自定义数据源 293

7.6 DSTREAM操作 297

7.6.1 无状态操作 297

7.6.2 状态操作 299

7.6.3 窗口操作 300

7.6.4 输出操作 302

7.6.5 缓存及持久化 303

7.6.6 检查点 304

7.7 案例分析:SPARK STREAMING按批次累加单词数量 306

7.8 案例分析: SPARK STREAMING整合KAFKA计算实时单词数量 311

7.9 案例分析:SPARK STREAMING实时用户日志黑名单过滤 318

7.10 综合案例:微博用户行为分析 322

第8章 Structured Streaming结构化流处理引擎 325

8.1 什么是STRUCTURED STREAMING 325

8.2 STRUCTURED STREAMING单词计数 326

8.3 STRUCTURED STREAMING编程模型 328

8.4 STRUCTURED STREAMING查询输出 330

8.5 STRUCTURED STREAMING窗口操作 334

8.5.1 事件时间 334

8.5.2 窗口聚合单词计数 335

8.5.3 延迟数据和水印 339

8.6 案例分析:STRUCTURED STREAMING整合KAFKA实现单词计数 343

第9章 GraphX图计算引擎 347

9.1 什么是GRAPHX 347

9.2 第一个GRAPHX程序 348

9.3 GRAPHX数据结构 352

9.4 GRAPHX图操作 352

9.4.1 基本操作 352

9.4.2 属性操作 355

9.4.3 结构操作 357

9.4.4 连接操作 359

9.4.5 聚合操作 362

9.5 案例分析:使用GRAPHX计算社交网络中粉丝的平均年龄 363

前言/序言

前 言

当今互联网已进入大数据时代,大数据技术已广泛应用于金融、医疗、教育、电信、政府等领域。各行各业每天都在产生大量的数据,数据计量单位已从Byte、KB、MB、GB、TB发展到PB、EB、ZB、YB,甚至是BB、NB、DB。预计未来几年,全球数据将呈爆炸式增长。谷歌、阿里巴巴、百度、京东等互联网公司都急需掌握大数据技术的人才,大数据相关人才出现了供不应求的状况。

Spark作为下一代大数据处理引擎,现已成为当今大数据领域非常活跃、高效的大数据计算平台,很多互联网公司都使用Spark来实现公司的核心业务,例如阿里的云计算平台、京东的推荐系统等,只要和海量数据相关的领域,都有Spark的身影。Spark提供了Java、Scala、Python和R的高级API,支持一组丰富的高级工具,包括使用SQL进行结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图处理的GraphX,以及用于实时流处理的Spark Streaming。这些高级工具可以在同一个应用程序中无缝地组合,大大提高了开发效率,降低了开发难度。

本书内容特色

本书基于Spark 2.4.x新版本编写,作为Spark的入门书,知识面比较广,涵盖当前整个Spark生态系统主流的大数据开发技术。本书内容丰富,以实操案例为主,理论为辅,一步一步手把手对常用的Spark离线计算以及实时计算等系统进行讲解。

全书共9章,第1章讲解Scala语言的基础知识,包括IDEA工具的使用等;第2章讲解Spark的主要组件、集群架构原理、集群环境搭建以及Spark应用程序的提交和运行;第3~9章讲解离线计算框架Spark RDD、Spark SQL和实时计算框架Kafka、Spark Streaming、Structured Streaming以及图计算框架GraphX等的基础知识、架构原理,同时包括常用的Shell命令、API操作、内核源码剖析,并通过多个实际案例讲解各个框架的具体应用以及与Hadoop生态系统框架Hive、HBase、Kafka的整合操作。

如何阅读本书

本书推荐的阅读方式是按照章节顺序从头到尾完成阅读,因为后面的很多章节是以前面的章节为基础的,而且这种一步一个脚印、由浅入深的方式将使你更加顺利地掌握Spark的开发技能。

学习本书时,首先学习第1章的Scala语言基础,在IDEA中编写Scala程序;然后学习第2章,掌握Spark的集群架构并搭建好Spark集群环境;接着依次学习第3~9章,学习每一章时先了解该章的基础知识和框架的架构原理,再进行Shell命令、API操作等实操练习,这样学习效果会更好。当书中的理论和实操知识都掌握后,可以举一反三,自己开发一个Spark应用程序,或者将所学知识运用到自己的编程项目上,也可以到各种在线论坛与其他Spark爱好者进行讨论,互帮互助。

PPT课件和源代码下载

为方便读者更好地使用本书,本书还提供了PPT课件和程序源码,读者扫描下述二维即可下载使用。如果下载有问题,请发邮件至bootsaga@126.com,邮件标题为:“Spark大数据分析实战”。

 

适用读者及达成的目标

本书可作为Spark新手和大数据开发人员的学习用书,要求读者具备一定的Java、Linux、Hadoop基础,对于没有任何Spark基础的读者完全可以对照书中的步骤成功地搭建属于自己的Spark集群。通过对本书的学习,读者能够对Spark相关框架迅速理解并掌握,可以熟练使用Spark集成环境进行大数据项目的开发。

由于水平所限和工作繁忙,书中难免出现错误或不准确的地方,恳请读者批评指正。

张伟洋

2020年2月于青岛

相关图书

数据算法:Hadoop/Spark大数据处理技巧
Mahmoud Parsian计算机科学博士力作,31个Hadoop与Spark大数据算法,包含基本设计模式、优化技术和数据挖掘及机器学习解决方案,涵盖生物信息学、基因组学、统计和社交网络分析等领域。
大数据运营与管理 数据中心数字化转型之路
涵盖通信、金融、政府、电力等15个真实案例+4个大型案例
大数据技术架构:核心原理与应用实践
洞悉人工智能本质特征、从0到1掌握大数据技术。技术畅销书作者李智慧力作!
大数据应用与技术丛书·数据仓库工具箱(第3版):维度建模权威指南 [The Data Warehouse Toolkit:The Definitive Guide to Dimensional Modeling, Third Edition]
维度建模技术、模式和实践,14个案例涉及零售业、电子商务、客户关系管理、采购、库存、订单管理、会计、人力资源、金融服务、医疗卫生、保险、教育、电信和运输等
移动通信大数据分析——数据挖掘与机器学习实战
全彩印刷,4G/5G无线技术、机器学习和数据挖掘的新研究和新应用。亚信科技董事长田溯宁博士,AT&T(美国电话电报)公司首席科学家大卫·贝兰格博士联袂推荐
Python数据分析与大数据处理从入门到精通
数据分析与大数据处理所需的所有技术,包含基础理论、核心概念、实施流程,从编程语言准备、数据采集与清洗、数据分析与可视化,到大型数据的分布式存储与分布式计算等。

暂无评论

暂无评论...