类似推荐
编辑推荐
通过实用技术和实战案例,让你轻松掌握大数据实时计算的方法。
内容简介
本书从大数据实时计算框架Spark的编程语言Scala入手,第1~4章重点介绍函数式编程语言Scala的基础语法、面向对象编程以及函数式编程等,再通过编程训练案例介绍Scala这门语言的实际开发应用,为读者后面学习Spark框架打下牢固的编程基础。第5~10章重点介绍Spark的安装部署、SparkCore编程、Spark SQL结构化数据处理以及Spark Streaming实时数据处理等,对它们进行详细的剖析和解读。最后,在第11章中通过网站运营指标统计和IP经纬度热力图分析两个实战开发项目,让读者充分掌握Spark大数据实时计算框架技术的应用与实操方法。本书适合所有对大数据技术感兴趣的读者。
作者简介
作者杨力,原普开数据大数据架构师兼教学总监,新奥集团公司云数据平台项目首席架构师,京东万象大数据平台缔造人之一,二六三网络通信反垃圾邮件系统平台项目经理。现任沈阳兄弟连教学总监。
章节目录
版权信息
内容提要
前言
服务与支持
第1章 Scala入门基础
1.1 Scala语言的特色
1.2 搭建Scala开发环境
1.2.1 安装JDK
1.2.2 安装Scala SDK
1.2.3 安装IDEA Scala插件
1.3 Scala解释器
1.3.1 启动Scala解释器
1.3.2 执行Scala代码
1.3.3 退出Scala解释器
1.4 Scala语法基础
1.4.1 定义变量
1.4.2 惰性赋值
1.4.3 字符串
1.4.4 数据类型与运算符
1.4.5 条件表达式
1.5 Scala控制结构和函数
1.5.1 for表达式
1.5.2 while循环
1.5.3 函数
1.5.4 方法和函数的区别
1.6 方法
1.6.1 定义方法
1.6.2 方法参数
1.6.3 方法调用方式
1.7 数组
1.7.1 定长数组
1.7.2 变长数组
1.7.3 遍历数组
1.8 元组和列表
1.8.1 元组
1.8.2 列表
1.8.3 Set集合
1.9 Map映射
1.9.1 不可变Map
1.9.2 可变Map
1.9.3 Map基本操作
1.10 函数式编程
1.10.1 遍历(foreach)
1.10.2 使用类型推断简化函数定义
1.10.3 使用下画线简化函数定义
1.10.4 映射(map)
1.10.5 扁平化映射(flatMap)
1.10.6 过滤(filter)
1.10.7 排序
1.10.8 分组(groupBy)
1.10.9 聚合(reduce)
1.10.10 折叠(fold)
1.11 本章总结
1.12 本章习题
第2章 Scala面向对象编程
2.1 类与对象
2.2 定义和访问成员变量
2.3 使用下画线初始化成员变量
2.4 定义成员方法
2.5 访问修饰符
2.6 类的构造器
2.6.1 主构造器
2.6.2 辅助构造器
2.7 单例对象
2.7.1 定义单例对象
2.7.2 在单例对象中定义成员方法
2.7.3 工具类案例
2.8 main方法
2.8.1 定义main方法
2.8.2 实现App trait来定义入口
2.9 伴生对象
2.9.1 定义伴生对象
2.9.2 apply和unapply方法
2.10 继承
2.10.1 定义语法
2.10.2 类继承
2.10.3 单例对象继承
2.10.4 override和super
2.11 类型判断
2.11.1 isInstanceOf和asInstanceOf方法
2.11.2 getClass和classOf
2.12 抽象类
定义抽象类
2.13 匿名内部类
2.14 特质
2.14.1 trait作为接口使用
2.14.2 trait中定义具体的字段和抽象字段
2.14.3 使用trait实现模板模式
2.14.4 对象混入trait
2.14.5 使用trait实现调用链模式
2.14.6 trait调用链
2.14.7 trait的构造机制
2.14.8 trait继承类
2.15 本章总结
2.16 本章习题
第3章 Scala编程高级应用
3.1 样例类
3.1.1 定义样例类
3.1.2 样例类方法
3.1.3 样例对象
3.2 模式匹配
3.2.1 简单匹配
3.2.2 守卫
3.2.3 匹配类型
3.2.4 匹配集合
3.2.5 变量声明中的模式匹配
3.2.6 匹配样例类
3.3 Option类型
3.4 偏函数
3.5 正则表达式
3.6 异常处理
3.6.1 捕获异常
3.6.2 抛出异常
3.7 提取器
定义提取器
3.8 泛型
3.8.1 定义泛型方法
3.8.2 定义泛型类
3.8.3 上下界
3.8.4 非变、协变和逆变
3.9 Actor
3.9.1 Java并发编程的问题
3.9.2 Actor并发编程模型
3.9.3 Java并发编程与Actor并发编程
3.10 Actor编程案例
3.10.1 创建Actor
3.10.2 发送消息/接收消息
3.10.3 持续接收消息
3.10.4 共享线程
3.10.5 发送和接收自定义消息
3.10.6 基于Actor实现WordCount案例
3.11 本章总结
3.12 本章习题
第4章 Scala函数式编程思想
4.1 作为值的函数
4.2 匿名函数
4.3 柯里化
4.4 闭包
4.5 隐式转换
4.6 隐式参数
4.7 Akka并发编程框架
4.7.1 Akka特性
4.7.2 Akka通信过程
4.7.3 创建ActorSystem
4.8 Akka编程入门案例
4.8.1 实现步骤
4.8.2 配置Maven模块依赖
4.9 Akka定时任务
4.10 实现两个进程之间的通信
4.11 本章总结
4.12 本章习题
第5章 Spark安装部署与入门
5.1 Spark简介
5.1.1 MapReduce与Spark
5.1.2 Spark组件
5.1.3 Spark生态系统
5.1.4 Spark架构
5.1.5 Spark运行部署模式
5.1.6 Spark远程过程调用协议
5.2 Spark环境搭建
5.2.1 本地模式部署
5.2.2 Standalone集群模式
5.2.3 Standalone-HA集群模式
5.2.4 YARN集群模式
5.2.5 Spark命令
5.3 编写Spark应用程序
5.3.1 Maven简介
5.3.2 安装Maven
5.3.3 Spark开发环境搭建
5.3.4 配置pom.xml文件
5.3.5 开发应用程序——本地运行
5.3.6 修改应用程序——集群运行
5.3.7 集群硬件配置说明
5.4 本章总结
5.5 本章习题
第6章 SparkCore编程
6.1 RDD概念与详解
6.1.1 RDD简介
6.1.2 RDD的主要属性
6.1.3 小结
6.2 RDD API应用程序
6.3 RDD的方法(算子)分类
6.3.1 Transformation算子
6.3.2 Action算子
6.4 基础练习
6.4.1 实现WordCount案例
6.4.2 创建RDD
6.4.3 map
6.4.4 filter
6.4.5 flatMap
6.4.6 sortBy
6.4.7 交集、并集、差集、笛卡尔积
6.4.8 groupByKey
6.4.9 groupBy
6.4.10 reduce
6.4.11 reduceByKey
6.4.12 repartition
6.4.13 count
6.4.14 top
6.4.15 take
6.4.16 first
6.4.17 keys、values
6.4.18 案例
6.5 实战案例
6.5.1 统计平均年龄
6.5.2 统计人口信息
6.5.3 在IDEA中实现WordCount案例
6.5.4 小结
6.6 RDD持久化缓存
代码演示
6.7 持久化缓存API详解
6.7.1 persist方法和cache方法
6.7.2 存储级别
6.7.3 小结
6.8 RDD容错机制Checkpoint
6.8.1 代码演示
6.8.2 容错机制Checkpoint详解
6.9 本章总结
6.10 本章习题
第7章 SparkCore运行原理
7.1 RDD依赖关系
7.1.1 窄依赖与宽依赖
7.1.2 对比窄依赖与宽依赖
7.2 DAG的生成和划分阶段
7.2.1 DAG的生成
7.2.2 DAG划分阶段
7.2.3 小结
7.3 Spark原理初探
7.3.1 Spark相关的应用概念
7.3.2 Spark基本流程概述
7.3.3 流程图解
7.3.4 RDD在Spark中的运行过程
7.3.5 小结
7.4 RDD累加器和广播变量
7.4.1 累加器
7.4.2 广播变量
7.5 RDD的数据源
7.5.1 普通文本文件
7.5.2 Hadoop API
7.5.3 SequenceFile
7.5.4 对象文件
7.5.5 HBase
7.5.6 JDBC
7.6 本章总结
7.7 本章习题
第8章 Spark SQL结构化数据处理入门
8.1 数据分析方式
8.1.1 命令式
8.1.2 SQL式
8.2 Spark SQL的发展
8.3 数据分类和Spark SQL适用场景
8.3.1 结构化数据
8.3.2 半结构化数据
8.3.3 非结构化数据
8.4 Spark SQL特点
8.5 Spark SQL数据抽象
8.6 DataFrame简介
8.7 Dataset简介
8.8 RDD、DataFrame和Dataset的区别
8.9 Spark SQL初体验
8.9.1 SparkSession入口
8.9.2 创建DataFrame
8.9.3 创建Dataset
8.9.4 两种查询风格
8.10 本章总结
8.11 本章习题
第9章 Spark SQL结构化数据处理高级应用
9.1 使用IDEA开发Spark SQL
9.1.1 创建DataFrame和Dataset
9.1.2 花式查询
9.1.3 相互转换
9.1.4 Spark SQL词频统计实战
9.2 Spark SQL多数据源交互
9.3 Spark SQL自定义函数
9.3.1 自定义函数分类
9.3.2 UDF
9.3.3 UDAF
9.4 Spark on Hive
9.4.1 开启Hive的元数据库服务
9.4.2 Spark SQL整合Hive元数据库
9.4.3 使用Spark SQL操作Hive表
9.5 本章总结
9.6 本章习题
第10章 Spark Streaming核心编程
10.1 场景需求
10.2 Spark Streaming概述
10.2.1 Spark Streaming的特点
10.2.2 Spark Streaming实时计算所处的位置
10.3 Spark Streaming原理
10.3.1 基本流程
10.3.2 数据模型
10.4 DStream相关的API
10.4.1 Transformation
10.4.2 Output
10.5 Spark Streaming原理总结
10.6 Spark Streaming实战
Spark Streaming第一个案例WordCount
10.7 updateStateByKey算子
10.7.1 WordCount案例问题分析
10.7.2 代码实现
10.7.3 执行步骤
10.8 reduceByKeyAndWindow算子
10.8.1 图解reduceByKeyAndWindow算子
10.8.2 代码实现
10.8.3 执行步骤
10.9 统计一定时间内的热搜词
10.9.1 需求分析
10.9.2 代码实现
10.9.3 执行步骤
10.10 整合Kafka
10.10.1 Kafka基本概念
10.10.2 Kafka的特性
10.10.3 核心概念图解
10.10.4 Kafka集群部署
10.10.5 Kafka常用命令
10.10.6 Receiver接收方式
10.10.7 Direct直连方式
10.10.8 spark-streaming-kafka-0-8版本
10.10.9 spark-streaming-kafka-0-10版本
10.11 本章总结
10.12 本章习题
第11章 Spark综合项目实战
11.1 网站运营指标统计项目
11.1.1 需求分析
11.1.2 数据分析
11.1.3 代码实现
11.2 热力图分析项目
11.2.1 需求分析
11.2.2 数据分析
11.2.3 项目开发
11.3 本章总结
11.4 本章习题
Spark大数据实时计算:基于Scala开发实战是2022年由人民邮电出版社出版,作者杨力。
得书感谢您对《Spark大数据实时计算:基于Scala开发实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。