图书目录

目录

第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启动SparkShell49

2.5.1运行SparkShell命令49

2.5.2运行SparkShell读取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