前言
基础篇
第1章Scala零基础入门
1.1Scala概述
1.2Windows及Linux下Scale运行环境安装配置
1.2.1软件工具准备
1.2.2Windows环境下的Scala安装
1.2.3Linux环境下的Scala安装
1.2.4Linux环境下的Hadoop安装与配置
1.2.5Linux环境下的Spark安装与配置
1.3Scala开发环境搭建和HelloWorld实例
1.3.1Scala集成开发工具的安装
1.3.2HelloWorld编程实例
1.3.3WorkSheet的使用
1.4变量的使用
1.4.1Scala解释器中的变量示例
1.4.2val变量的定义
1.4.3var变量的定义
1.4.4var变量与val变量的使用比较
1.5函数的定义、流程控制、异常处理
1.5.1函数的定义
1.5.2流程控制(if、while、for)
1.5.3异常处理
1.6Tuple、Array、Map与文件操作
1.6.1Tuple元组
1.6.2Array数组
1.6.3文件操作
1.6.4Map映射
1.7Scala中的apply方法
1.7.1Object中的apply
1.7.2Class中的apply
1.7.3Array数组的apply实现
1.8小结
第2章Scala面向对象编程开发
2.1类的定义及属性
2.1.1类定义
2.1.2带有getter和setter的属性
2.2主构造器、私有构造器、构造器重载
2.2.1构造器重载之辅助构造器
2.2.2主构造器
2.2.3不同访问权限的构造器
2.3内部类和外部类
2.4单例对象、伴生对象
2.5继承:超类的构造、重写字段、重写方法
2.5.1超类的构造
2.5.2重写字段
2.5.3重写方法
2.6抽象类、抽象字段、抽象方法
2.6.1抽象类
2.6.2抽象字段
2.6.3抽象方法
2.7trait特质
2.7.1作为接口使用的trait
2.7.2在对象中混入trait
2.7.3trait深入解析
2.8多重继承、多重继承构造器执行顺序及AOP实现
2.8.1多重继承
2.8.2多重继承构造器执行顺序
2.8.3AOP实现
2.9包的定义、包对象、包的引用、包的隐式引用
2.9.1包的定义
2.9.2包对象
2.9.3包的引用
2.9.4包的隐式引用
2.10包、类、对象、成员、伴生类、伴生对象访问权限
2.10.1包、类、对象、成员访问权限
2.10.2伴生类、伴生对象访问权限
2.11小结
第3章Scala高阶函数
3.1匿名函数
3.2偏应用函数
3.3闭包
3.4SAM转换
3.5Curring函数
3.6高阶函数
3.7高阶函数在Spark中的应用
3.8小结
中级篇
第4章Scala模式匹配
4.1模式匹配简介
4.2模式匹配类型
4.2.1常量模式
4.2.2变量模式
4.2.3构造器模式
4.2.4序列(Sequence)模式
4.2.5元组(Tuple)模式
4.2.6类型模式
4.2.7变量绑定模式
4.3模式匹配与Case Class
4.3.1构造器模式匹配原理
4.3.2序列模式匹配原理
4.3.3Sealed Class在模式匹配中的应用
4.4模式匹配应用实例
4.4.1for循环控制结构中的模式匹配
4.4.2正则表达式中的模式匹配
4.4.3异常处理中的模式匹配
4.4.4Spark源码中的模式匹配使用
4.5本章小结
第5章Scala集合
5.1可变集合与不可变集合(Collection)
5.1.1集合的概述
5.1.2集合的相关操作
5.1.3集合的操作示例
5.2序列(Seq)
5.2.1序列的概述
5.2.2序列的相关操作
5.2.3序列的操作示例
5.3列表(List)
5.3.1列表的概述
5.3.2列表的相关操作
5.3.3列表的操作示例
5.4集(Set)
5.4.1集的概述
5.4.2集的相关操作
5.4.3集的操作示例
5.5映射(Map)
5.5.1映射的概述
5.5.2映射的相关操作
5.5.3映射的操作示例
5.6迭代器(Iterator)
5.6.1迭代器的概述
5.6.2迭代器的相关操作
5.6.3迭代器的操作示例
5.7集合的架构
5.8小结
高级篇
第6章Scala类型参数
6.1泛型
6.1.1泛型的概述
6.1.2泛型的操作示例
6.2界定
6.2.1上下界界定
6.2.2视图界定
6.2.3上下文界定
6.2.4多重界定
6.2.5界定的操作示例
6.3类型约束
6.3.1类型约束的概述
6.3.2类型约束的操作示例
6.4类型系统
6.4.1类型系统的概述
6.4.2类型系统的操作示例
6.5型变Variance
6.5.1协变
6.5.2逆变
6.5.3协变与逆变的操作示例
6.6结合Spark源码说明Scala类型参数的使用
6.7小结
第7章Scala高级类型
7.1单例类型
7.1.1单例类型概述
7.1.2单例类型示例
7.2类型别名
7.2.1类型别名概述
7.2.2类型别名示例
7.3自身类型
7.3.1自身类型概述
7.3.2自身类型示例
7.4中置类型
7.4.1中置类型概述
7.4.2中置类型示例
7.5类型投影
7.5.1类型投影概述
7.5.2类型投影实例
7.6结构类型
7.6.1结构类型概述
7.6.2结构类型示例
7.7复合类型
7.7.1复合类型概述
7.7.2复合类型示例
7.8存在类型
7.8.1存在类型概述
7.8.2存在类型示例
7.9函数类型
7.9.1函数类型概述
7.9.2函数类型示例
7.10抽象类型
7.10.1抽象类型概述
7.10.2抽象类型实例
7.11Spark源码中的高级类型使用
7.12本章小结
第8章Scala隐式转换
8.1隐式转换函数
8.1.1隐式转换函数的定义
8.1.2隐式转换函数的功能
8.2隐式类与隐式对象
8.2.1隐式类
8.2.2隐式参数与隐式值
8.3类型证明中的隐式转换
8.3.1类型证明的定义
8.3.2类型证明使用实例
8.4上下文界定、视图界定中的隐式转换
8.4.1Ordering与Ordered特质
8.4.2视图界定中的隐式转换
8.4.3上下文界定中的隐式转换
8.5隐式转换规则
8.5.1发生隐式转换的条件
8.5.2不会发生隐式转换的条件
8.6Spark源码中的隐式转换使用
8.6.1隐式转换函数
8.6.2隐式类
8.6.3隐式参数
8.7本章小结
第9章Scala并发编程
9.1Scala的Actor模型简介
9.2Scala Actor的构建方式
9.2.1继承Actor类
9.2.2Actor工具方法
9.3Actor的生命周期
9.3.1start方法的等幂性
9.3.2Actor的不同状态
9.4Actor之间的通信
9.4.1Actor之间发送消息
9.4.2Actor接收消息
9.5使用react重用线程提升性能
9.6Channel通道
9.6.1OutputChannel
9.6.2InputChannel
9.6.3创建和共享channel
9.7同步和Future
9.8Scala并发编程实例
9.8.1Scala Actor并发编程
9.8.2ExecutorService并发编程
9.9小结
分布式框架篇
第10章Akka的设计理念
10.1Akka框架模型
10.2创建Actor
10.2.1通过实现akka.actor.Actor来创建Actor类
10.2.2使用非缺省构造方法创建 Actor
10.2.3创建匿名Actor
10.3Actor API
10.3.1Actor trait基本接口
10.3.2使用DeathWatch进行生命周期监控
10.3.3Hook函数的调用
10.3.4查找Actor
10.3.5消息的不可变性
10.3.6发送消息
10.3.7转发消息
10.3.8接收消息
10.3.9回应消息
10.3.10终止Actor
10.3.11Become/Unbecome
10.3.12杀死Actor
10.4不同类型的Actor
10.4.1方法派发语义
10.4.2终止有类型Actor
10.5小结
第11章Akka核心组件及核心特性剖析
11.1Dispatchers 和 Routers
11.1.1为Actor指定派发器
11.1.2派发器的类型
11.1.3邮箱
11.1.4Routers
11.1.5路由的使用
11.1.6远程部署router
11.2Supervision和Monitoring
11.2.1Supervision
11.2.2Monitoring
11.3Akka中的事务
11.3.1STM
11.3.2使用STM事务
11.3.3读取Agent事务中的数据
11.3.4更新Agent事务中的数据
11.3.5Actor中的事务
11.3.6创建Transactor
11.4小结
第12章Akka程序设计实践
12.1Akka的配置、日志及部署
12.1.1Akka中配置文件的读写
12.1.2Akka中日志配置
12.1.3Akka部署及应用场景
12.2使用Akka框架实现单词统计
12.3分布式Akka环境搭建
12.4使用Akka微内核部署应用
12.5Akka框架在Spark中的运用
12.6小结
第13章Kafka设计理念与基本架构
13.1Kafka产生的背景
13.2消息队列系统
13.2.1概述
13.2.2常用的消息队列系统对比
13.2.3Kafka特点及特性
13.2.4Kafka系统应用场景
13.3Kafka设计理念
13.3.1专业术语解析
13.3.2消息存储与缓存设计
13.3.3消费者与生产者模型
13.3.4Push与Pull机制
13.3.5镜像机制
13.4Kafka整体架构
13.4.1Kafka基本组成结构
13.4.2Kafka工作流程
13.5Kafka性能分析及优化
13.6Kafka未来研究方向
13.7小结
第14章Kafka核心组件及核心特性剖析
14.1Kafka核心组件剖析
14.1.1Producers
14.1.2Consumers
14.1.3Low Level Consumer
14.1.4High Level Consumer
14.2Kafka核心特性剖析
14.2.1Topic、Partitions
14.2.2Replication和Leader Election
14.2.3Consumer Rebalance
14.2.4消息传送机制
14.2.5Kafka的可靠性
14.2.6Kafka的高效性
14.3Kafka即将发布版本核心组件及特性剖析
14.3.1重新设计的Consumer
14.3.2Coordinator Rebalance
14.4小结
第15章Kafka应用实践
15.1Kafka开发环境搭建及运行环境部署
15.1.1Kafka开发环境配置
15.1.2Kafka运行环境安装与部署
15.2基于Kafka客户端开发
15.2.1消息生产者(Producer)设计
15.2.2消息消费者(Consumer)设计
15.2.3Kafka消费者与生产者配置
15.3Spark Streaming整合Kafka
15.3.1基本架构设计流程
15.3.2消息消费者(Consumer)设计——基于Receiver方法
15.3.3消息消费者(Consumer)设计——基于No Receiver方法
15.3.4消息生产者(Producer)设计
15.4小结
附录Kafka集群server.properties配置文档
参考文献
展开