大数据科学丛书 Scala 语言基础与开发实战
作者:王家林等编著
出版时间:2016
内容简介
本书分为基础篇、中级篇、高级篇及分布式框架四大部分,从Scala零基础入门,步步深入,引导读者由浅入深地学习Scala及其应用。本书从手把手指引读者搭建Scala语言开发环境开始,详细介绍了Scala的语法基础,以代码实例形式分别讲解了Scala面向对象开发及函数式编程;在此基础上进一步深入讲解了Scala的中高级语法特性,包括模式匹配、集合、类型参数、高级类型、隐式转化及各语法特性在Spark源码中的应用解析,并引出Scala的Actor模型及其应用详解。本书还详细介绍了以Scala为基础的两大框架——Akka和Kafka。本书每章开始均有重点介绍,以引导读者有目的、有重点地阅读或查阅。另外,针对不同语法特性的源码及应用解析是本书的另一大特点。本书适合具备一定编程语言基础、对大数据开发有兴趣的在校学生,同时,对有面向对象编程或函数式编程经验的人员,本书也可以作为开发实例的参考书籍。
目录
前言基础篇第1章Scala零基础入门11Scala概述12Windows及Linux下Scale运行环境安装配置121软件工具准备122Windows环境下的Scala安装123Linux环境下的Scala安装124Linux环境下的Hadoop安装与配置125Linux环境下的Spark安装与配置13Scala开发环境搭建和HelloWorld实例131Scala集成开发工具的安装132HelloWorld编程实例133WorkSheet的使用14变量的使用141Scala解释器中的变量示例142val变量的定义143var变量的定义144var变量与val变量的使用比较15函数的定义、流程控制、异常处理151函数的定义152流程控制(if、while、for)153异常处理16Tuple、Array、Map与文件操作161Tuple元组162Array数组163文件操作164Map映射17Scala中的apply方法171Object中的apply172Class中的apply173Array数组的apply实现18小结第2章Scala面向对象编程开发21类的定义及属性211类定义212带有getter和setter的属性22主构造器、私有构造器、构造器重载221构造器重载之辅助构造器222主构造器223不同访问权限的构造器23内部类和外部类24单例对象、伴生对象25继承:超类的构造、重写字段、重写方法251超类的构造252重写字段253重写方法26抽象类、抽象字段、抽象方法261抽象类262抽象字段263抽象方法27trait特质271作为接口使用的trait272在对象中混入trait273trait深入解析28多重继承、多重继承构造器执行顺序及AOP实现281多重继承282多重继承构造器执行顺序283AOP实现29包的定义、包对象、包的引用、包的隐式引用291包的定义292包对象293包的引用294包的隐式引用210包、类、对象、成员、伴生类、伴生对象访问权限2101包、类、对象、成员访问权限2102伴生类、伴生对象访问权限211小结第3章Scala高阶函数31匿名函数32偏应用函数33闭包34SAM转换35Curring函数36高阶函数37高阶函数在Spark中的应用38小结中级篇第4章Scala模式匹配41模式匹配简介42模式匹配类型421常量模式422变量模式423构造器模式424序列(Sequence)模式425元组(Tuple)模式426类型模式427变量绑定模式43模式匹配与Case Class431构造器模式匹配原理432序列模式匹配原理433Sealed Class在模式匹配中的应用44模式匹配应用实例441for循环控制结构中的模式匹配442正则表达式中的模式匹配443异常处理中的模式匹配444Spark源码中的模式匹配使用45本章小结第5章Scala集合51可变集合与不可变集合(Collection)511集合的概述512集合的相关操作513集合的操作示例52序列(Seq)521序列的概述522序列的相关操作523序列的操作示例53列表(List)531列表的概述532列表的相关操作533列表的操作示例54集(Set)541集的概述542集的相关操作543集的操作示例55映射(Map)551映射的概述552映射的相关操作553映射的操作示例56迭代器(Iterator)561迭代器的概述562迭代器的相关操作563迭代器的操作示例57集合的架构58小结高级篇第6章Scala类型参数61泛型611泛型的概述612泛型的操作示例62界定621上下界界定622视图界定623上下文界定624多重界定625界定的操作示例63类型约束631类型约束的概述632类型约束的操作示例64类型系统641类型系统的概述642类型系统的操作示例65型变Variance651协变652逆变653协变与逆变的操作示例66结合Spark源码说明Scala类型参数的使用67小结第7章Scala高级类型71单例类型711单例类型概述712单例类型示例72类型别名721类型别名概述722类型别名示例73自身类型731自身类型概述732自身类型示例74中置类型741中置类型概述742中置类型示例75类型投影751类型投影概述752类型投影实例76结构类型761结构类型概述762结构类型示例77复合类型771复合类型概述772复合类型示例78存在类型781存在类型概述782存在类型示例79函数类型791函数类型概述792函数类型示例710抽象类型7101抽象类型概述7102抽象类型实例711Spark源码中的高级类型使用712本章小结第8章Scala隐式转换81隐式转换函数811隐式转换函数的定义812隐式转换函数的功能82隐式类与隐式对象821隐式类822隐式参数与隐式值83类型证明中的隐式转换831类型证明的定义832类型证明使用实例84上下文界定、视图界定中的隐式转换841Ordering与Ordered特质842视图界定中的隐式转换843上下文界定中的隐式转换85隐式转换规则851发生隐式转换的条件852不会发生隐式转换的条件86Spark源码中的隐式转换使用861隐式转换函数862隐式类863隐式参数87本章小结第9章Scala并发编程91Scala的Actor模型简介92Scala Actor的构建方式921继承Actor类922Actor工具方法93Actor的生命周期931start方法的等幂性932Actor的不同状态94Actor之间的通信941Actor之间发送消息942Actor接收消息95使用react重用线程提升性能96Channel通道961OutputChannel962InputChannel963创建和共享channel97同步和Future98Scala并发编程实例981Scala Actor并发编程982ExecutorService并发编程99小结分布式框架篇第10章Akka的设计理念101Akka框架模型102创建Actor1021通过实现akkaactorActor来创建Actor类1022使用非缺省构造方法创建 Actor1023创建匿名Actor103Actor API1031Actor trait基本接口1032使用DeathWatch进行生命周期监控1033Hook函数的调用1034查找Actor1035消息的不可变性1036发送消息1037转发消息1038接收消息1039回应消息10310终止Actor10311Become/Unbecome10312杀死Actor104不同类型的Actor1041方法派发语义1042终止有类型Actor105小结第11章Akka核心组件及核心特性剖析111Dispatchers 和 Routers1111为Actor指定派发器1112派发器的类型1113邮箱1114Routers1115路由的使用1116远程部署router112Supervision和Monitoring1121Supervision1122Monitoring113Akka中的事务1131STM1132使用STM事务1133读取Agent事务中的数据1134更新Agent事务中的数据1135Actor中的事务1136创建Transactor114小结第12章Akka程序设计实践121Akka的配置、日志及部署1211Akka中配置文件的读写1212Akka中日志配置1213Akka部署及应用场景122使用Akka框架实现单词统计123分布式Akka环境搭建124使用Akka微内核部署应用125Akka框架在Spark中的运用126小结第13章Kafka设计理念与基本架构131Kafka产生的背景132消息队列系统1321概述1322常用的消息队列系统对比1323Kafka特点及特性1324Kafka系统应用场景133Kafka设计理念1331专业术语解析1332消息存储与缓存设计1333消费者与生产者模型1334Push与Pull机制1335镜像机制134Kafka整体架构1341Kafka基本组成结构1342Kafka工作流程135Kafka性能分析及优化136Kafka未来研究方向137小结第14章Kafka核心组件及核心特性剖析141Kafka核心组件剖析1411Producers1412Consumers1413Low Level Consumer1414High Level Consumer142Kafka核心特性剖析1421Topic、Partitions1422Replication和Leader Election1423Consumer Rebalance1424消息传送机制1425Kafka的可靠性1426Kafka的高效性143Kafka即将发布版本核心组件及特性剖析1431重新设计的Consumer1432Coordinator Rebalance144小结第15章Kafka应用实践151Kafka开发环境搭建及运行环境部署1511Kafka开发环境配置1512Kafka运行环境安装与部署152基于Kafka客户端开发1521消息生产者(Producer)设计1522消息消费者(Consumer)设计1523Kafka消费者与生产者配置153Spark Streaming整合Kafka1531基本架构设计流程1532消息消费者(Consumer)设计——基于Receiver方法1533消息消费者(Consumer)设计——基于No Receiver方法1534消息生产者(Producer)设计154小结附录Kafka集群serverproperties配置文档参考文献