大数据技术与应用丛书 Spark大数据分析与实战
作者:黑马程序员 编著
出版时间: 2019年版
丛编项: 大数据技术与应用丛书
内容简介
本书从初学者角度详细介绍了Spark应用程序体系架构的核心技术,全书共9章。第1章详细介绍开发Spark框架的Scala编程语言;第2~4、7~8章主要讲解Spark核心基础、SparkRDD弹性分布式数据集、Spark SQL处理结构化数据、Spark Streaming实时计算框架、Spark MLlib机器学习库,并包含了搭建Spark集群、Spark集群的操作方式、利用Spark解决大数据工作中遇到的基本问题。第5~6章主要讲解大数据环境中常见的辅助系统,HBase数据库以及Kafka流处理平台,包含辅助系统的搭建方式、使用方法以及相关底层实现的基本原理;第9章是一个综合项目,利用Spark框架开发流式计算系统。掌握Spark相关技术,能够很好地适应企业开发的技术需要,为离线、实时数据处理平台的开发奠定基础。 本书附有配套源代码、教学PPT、题库、教学视频、教学补充案例、教学设计等资源。为了帮助初学者更好地学习本书中的内容,还提供了在线答疑,欢迎读者关注。 本书可作为高等院校本、专科计算机相关专业,大数据课程的专用教材,是一本适合广大计算机编程爱好者的优秀读物。
目录
目录
第1章Scala语言基础1
1.1初识Scala1
1.1.1Scala概述1
1.1.2Scala的下载安装2
1.1.3在IDEA开发工具中下载安装
Scala插件4
1.1.4开发第一个Scala程序6
1.2Scala的基础语法9
1.2.1声明值和变量9
1.2.2数据类型9
1.2.3算术和操作符重载10
1.2.4控制结构语句10
1.2.5方法和函数13
1.3Scala的数据结构15
1.3.1数组15
1.3.2元组18
1.3.3集合19
1.4Scala面向对象的特性24
1.4.1类与对象24
1.4.2继承25
1.4.3单例对象和伴生对象26
1.4.4特质28
1.5Scala的模式匹配与样例类29
1.5.1模式匹配30
1.5.2样例类31
1.6本章小结31
1.7课后习题32
第2章Spark基础33
2.1初识Spark33目录Spark大数据分析与实战
2.1.1Spark概述33
2.1.2Spark的特点34
2.1.3Spark应用场景35
2.1.4Spark与Hadoop对比36
2.2搭建Spark开发环境37
2.2.1环境准备37
2.2.2Spark的部署方式37
2.2.3Spark集群安装部署38
2.2.4Spark HA集群部署41
2.3Spark运行架构与原理45
2.3.1基本概念45
2.3.2Spark集群运行架构45
2.3.3Spark运行基本流程46
2.4体验第一个Spark程序47
2.5启动SparkShell49
2.5.1运行SparkShell命令49
2.5.2运行SparkShell读取HDFS文件50
2.6IDEA开发WordCount程序52
2.6.1以本地模式执行Spark程序52
2.6.2集群模式执行Spark程序54
2.7本章小结58
2.8课后习题59
第3章Spark RDD弹性分布式数据集60
3.1RDD简介60
3.2RDD的创建方式61
3.2.1从文件系统加载数据创建RDD61
3.2.2通过并行集合创建RDD62
3.3RDD的处理过程63
3.3.1转换算子63
3.3.2行动算子67
3.3.3编写WordCount词频统计案例70
3.4RDD的分区71
3.5RDD的依赖关系71
3.6RDD机制73
3.6.1持久化机制73
3.6.2容错机制75
3.7Spark的任务调度76
3.7.1DAG的概念76
3.7.2RDD在Spark中的运行流程76
3.8本章小结78
3.9课后习题78
第4章Spark SQL结构化数据文件处理80
4.1Spark SQL的基础知识80
4.1.1Spark SQL的简介80
4.1.2Spark SQL架构81
4.2DataFrame的基础知识82
4.2.1DataFrame简介82
4.2.2DataFrame的创建83
4.2.3DataFrame的常用操作86
4.3Dataset的基础知识89
4.3.1Dataset简介89
4.3.2Dataset对象的创建89
4.4RDD转换为DataFrame90
4.4.1反射机制推断Schema90
4.4.2编程方式定义Schema92
4.5Spark SQL操作数据源94
4.5.1操作MySQL94
4.5.2操作Hive数据集96
4.6本章小结99
4.7课后习题99
第5章HBase分布式数据库101
5.1HBase的基础知识101
5.1.1HBase的简介101
5.1.2HBase的数据模型102
5.2HBase的集群部署103
5.3HBase的基本操作107
5.3.1HBase的Shell操作107
5.3.2HBase的Java API操作112
5.4深入学习HBase原理120
5.4.1HBase架构121
5.4.2物理存储122
5.4.3寻址机制123
5.4.4HBase读写数据流程124
5.5HBase和Hive的整合125
5.6本章小结130
5.7课后习题130
第6章Kafka分布式发布订阅消息系统132
6.1Kafka的基础知识132
6.1.1消息传递模式简介132
6.1.2Kafka简介133
6.2Kafka工作原理134
6.2.1Kafka核心组件介绍134
6.2.2Kafka工作流程分析136
6.3Kafka集群部署与测试138
6.3.1安装Kafka138
6.3.2启动Kafka服务140
6.4Kafka生产者和消费者实例141
6.4.1基于命令行方式使用Kafka141
6.4.2基于Java API方式使用Kafka143
6.5Kafka Streams148
6.5.1Kafka Streams概述149
6.5.2Kafka Streams开发单词计数应用149
6.6本章小结153
6.7课后习题153
第7章Spark Streaming实时计算框架155
7.1实时计算的基础知识155
7.1.1什么是实时计算155
7.1.2常用的实时计算框架155
7.2Spark Streaming的基础知识156
7.2.1Spark Streaming简介156
7.2.2Spark Streaming工作原理157
7.3Spark的DStream157
7.3.1DStream简介157
7.3.2DStream编程模型158
7.3.3DStream转换操作158
7.3.4DStream窗口操作164
7.3.5DStream输出操作168
7.3.6DStream实例——实现网站热词排序170
7.4Spark Streaming整合Kafka实战173
7.4.1KafkaUtils.createDstream方式173
7.4.2KafkaUtils.createDirectStream方式177
7.5本章小结180
7.6课后习题180
第8章Spark MLlib 机器学习算法库182
8.1初识机器学习182
8.1.1什么是机器学习182
8.1.2机器学习的应用183
8.2Spark机器学习库MLlib的概述184
8.2.1MLlib的简介184
8.2.2Spark机器学习工作流程185
8.3数据类型186
8.3.1本地向量186
8.3.2标注点186
8.3.3本地矩阵187
8.4Spark MLlib基本统计188
8.4.1摘要统计188
8.4.2相关统计189
8.4.3分层抽样190
8.5分类191
8.5.1线性支持向量机191
8.5.2逻辑回归192
8.6案例——构建推荐系统193
8.6.1推荐模型分类194
8.6.2利用MLlib实现电影推荐194
8.7本章小结200
8.8课后习题200
第9章综合案例——Spark实时交易数据统计202
9.1系统概述202
9.1.1系统背景介绍202
9.1.2系统架构设计202
9.1.3系统预览203
9.2Redis数据库203
9.2.1Redis介绍204
9.2.2Redis部署与启动204
9.2.3Redis操作及命令205
9.3模块开发——构建工程结构206
9.4模块开发——构建订单系统211
9.4.1模拟订单数据211
9.4.2向Kafka集群发送订单数据212
9.5模块开发——分析订单数据215
9.6模块开发——数据展示219
9.6.1搭建Web开发环境219
9.6.2实现数据展示功能221
9.6.3可视化平台展示227
9.7本章小结228