Stream Processing with Apache Spark
作者: Gerard Maas and François Garillot
语言: 英文
出版年份: 2019
开源软件: Apache项目
下载链接:
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。

书籍摘要

一、书籍背景与目的

《Stream Processing with Apache Spark: Best Practices for Scaling and Optimizing Apache Spark》由Gerard Maas和François Garillot合著,是一本专注于Apache Spark流处理技术的权威指南。随着大数据时代的到来,实时数据处理需求日益增长,Apache Spark作为领先的分布式数据处理框架,其流处理能力备受关注。本书旨在为软件开发人员、数据工程师和数据科学家提供深入的理论知识和实践经验,帮助他们掌握如何使用Apache Spark进行高效、可扩展的流处理应用开发。

二、内容概览

本书分为五个部分,系统地介绍了Apache Spark流处理的基础知识、核心API、高级技术以及与其他系统的集成。

第一部分:流处理基础

  • 第1章:介绍流处理的基本概念,包括其与批处理的区别、时间概念以及不确定性问题。
  • 第2章:探讨流处理模型,包括数据源、数据流的不可变性、转换与聚合操作,以及时间窗口的概念。
  • 第3章:讨论流处理架构,包括Lambda架构和Kappa架构的对比,以及批处理与流处理算法的差异。
  • 第4章:深入剖析Apache Spark作为流处理引擎的特点,包括其内存使用、容错机制和延迟与吞吐量的权衡。
  • 第5章:讲解Spark的分布式处理模型,包括集群管理器的使用、容错机制和数据交付语义。
  • 第6章:介绍Spark的弹性模型,重点在于RDD的容错能力以及任务、阶段和驱动程序的故障恢复机制。

第二部分:Structured Streaming

  • 第7章:通过实际案例介绍Structured Streaming,包括其与批处理的对比、事件时间处理和状态管理。
  • 第8章:详细阐述Structured Streaming的编程模型,包括初始化Spark、数据源的使用、数据转换和输出。
  • 第9章:通过物联网案例展示Structured Streaming的完整应用流程,包括数据源的消费、应用逻辑的实现和结果的输出。
  • 第10章:深入探讨Structured Streaming的数据源,包括文件源、Kafka源、Socket源和Rate源的配置与使用。
  • 第11章:介绍Structured Streaming的输出目标(Sink),包括文件Sink、Kafka Sink、内存Sink和控制台Sink等。
  • 第12章:讲解基于事件时间的流处理,包括时间戳的使用、水印机制和时间窗口聚合。
  • 第13章:探讨高级状态管理操作,如mapGroupsWithStateflatMapGroupsWithState的使用。
  • 第14章:介绍Structured Streaming应用的监控方法,包括Spark指标子系统和StreamingQueryListener的使用。
  • 第15章:探索Structured Streaming的实验性领域,如连续处理和机器学习的集成。

第三部分:Spark Streaming

  • 第16章:介绍Spark Streaming的基本概念,包括DStream抽象和编程模型。
  • 第17章:深入探讨Spark Streaming的编程模型,包括RDD的底层抽象和DStream的转换操作。
  • 第18章:讲解Spark Streaming的执行模型,包括批量同步架构和接收器模型。
  • 第19章:介绍Spark Streaming的数据源,包括文件源、Kafka源和Socket源等。
  • 第20章:探讨Spark Streaming的输出操作,包括内置输出操作和第三方输出操作。
  • 第21章:讲解基于时间的流处理,包括窗口聚合和滑动窗口的概念。
  • 第22章:介绍任意状态流计算,包括updateStateByKeymapWithState的使用。
  • 第23章:探讨Spark Streaming与Spark SQL的结合使用,包括数据集的富化和更新。
  • 第24章:介绍Spark Streaming的检查点机制,包括检查点的使用和限制。

第四部分:高级流处理技术

  • 第27章:介绍流处理中的近似算法和抽样技术,包括HyperLogLog、Count-Min Sketch和Bloom Filter等。
  • 第28章:探讨实时机器学习在流处理中的应用,包括朴素贝叶斯分类、Hoeffding树和在线K-Means聚类。

第五部分:超越Apache Spark

  • 第29章:对比Apache Spark与其他分布式实时流处理系统,如Apache Storm、Apache Flink和Kafka Streams。
  • 第30章:展望Apache Spark的未来发展,包括社区参与和学习资源的推荐。

三、特色与价值

本书不仅涵盖了Apache Spark流处理的理论基础,还提供了丰富的实践案例和代码示例,帮助读者快速上手并深入掌握相关技术。书中对Structured Streaming和Spark Streaming两种API的详细讲解,使读者能够根据项目需求选择合适的工具。此外,书中还探讨了流处理中的高级主题,如状态管理、事件时间处理和机器学习集成,为读者提供了宝贵的参考。无论是初学者还是有一定经验的开发者,都能从本书中获得有价值的见解和实用的指导。

期待您的支持
捐助本站