Stream Processing with Apache Flink

Stream Processing with Apache Flink - Fundamentals,Implementation,and Operation of Streaming Applications
应用Apache Flink进行流式处理 - 流式应用的架构、实现和操作
lrg.jpg

作者: Fabian Hueske (费比安 韦斯克), Vasiliki Kalavri (瓦西利基 卡拉夫里)

如果是相对Flink有跟深入的了解,除了查看官方文档和源码外,这里推荐可以看下这本书,如果支持原版的可以网上查询购买,书籍详细信息可访问 OREILLY 官网 Books & Videos。后续有时间我可能会更新书中比较重要和精彩的部分的翻译吧。先释放出这本书的目录,大家可以参考这本书的目录对相应的知识点进行了解和学习。

书中源码可以访问 GitHub streaming-with-flink

catalogue目录
1. Preface前言
   a. What You Will Learn in This Book你将在本书中学到什么
   b. Conventions Used in This Book本书中使用的约定
   c. Using Code Examples使用代码示例
   d. O’Reilly Online LearningO’Reilly在线学习
   e. How to Contact Us如何联系我们
   f. Acknowledgments致谢
 
2. 1. Introduction to Stateful Stream Processing有状态流处理简介
   a. Traditional Data Infrastructures传统数据基础架构
      i. Transactional Processing事务性处理
      ii. Analytical Processing分析处理
   b. Stateful Stream Processing有状态的流处理
      i. Event-Driven Applications事件驱动的应用程序
      ii. Data Pipelines数据管道
      iii. Streaming Analytics流式分析
   c. The Evolution of Open Source Stream Processing开源流处理的演进
      i. A Bit of History一点历史
   d. A Quick Look at Flink快速浏览Flink
      i. Running Your First Flink Application运行您的第一个Flink应用程序
   e. Summary小结
 
3. 2. Stream Processing Fundamentals流处理基础
   a. Introduction to Dataflow ProgrammingDataflow编程简介
      i. Dataflow Graphs数据流图
      ii. Data Parallelism and Task Parallelism数据并行与Task并行
      iii. Data Exchange Strategies数据交换策略
   b. Processing Streams in Parallel并行处理流
      i. Latency and Throughput延迟和吞吐量
      ii. Operations on Data Streams数据流上的Operation
   c. Time Semantics时间语义
      i. What Does One Minute Mean in Stream Processing?流处理中的一分钟意味着什么?
      ii. Processing Time处理时间
      iii. Event Time事件时间
      iv. Watermarks水位线
      v. Processing Time Versus Event Time处理时间与事件时间
   d. State and Consistency Models状态和一致性模型
      i. Task Failures任务失败
      ii. Result Guarantees结果保证
   e. Summary小结
 
4. 3. The Architecture of Apache FlinkApache Flink的体系结构
   a. System Architecture系统架构
      i. Components of a Flink SetupFlink设置的组件
      ii. Application Deployment应用程序部署
      iii. Task ExecutionTask执行
      iv. Highly Available Setup高度可用的设置
   b. Data Transfer in FlinkFlink中的数据传输
      i. Credit-Based Flow Control基于信用的流量控制
      ii. Task ChainingTask链
   c. Event-Time Processing事件时间处理
      i. Timestamps时间戳
      ii. Watermarks水位线
      iii. Watermark Propagation and Event Time水位线传播和事件时间
      iv. Timestamp Assignment and Watermark Generation时间戳分配和水位线生成
   d. State Management状态管理
      i. Operator StateOperator状态
      ii. Keyed StateKeyed状态
      iii. State Backends状态后端
      iv. Scaling Stateful Operators扩展有状态的Operator
   e. Checkpoints, Savepoints, and State RecoveryCheckpoints、Savepoints和状态恢复
      i. Consistent Checkpoints一致的Checkpoint
      ii. Recovery from a Consistent Checkpoint从一致的Checkpoint恢复
      iii. Flink’s Checkpointing AlgorithmFlink的Checkpoint算法
      iv. Performace Implications of CheckpointingCheckpoint的性能影响
      v. SavepointsSavepoint
   f. Summary小节
 
5. 4. Setting Up a Development Environment for Apache Flink为Apache Flink设置开发环境
   a. Required Software软件要求
   b. Run and Debug Flink Applications in an IDE在IDE中运行和调试Flink应用程序
      i. Import the Book’s Examples in an IDE在IDE中导入Book的示例
      ii. Run Flink Applications in an IDE在IDE中运行Flink应用程序
      iii. Debug Flink Applications in an IDE在IDE中调试Flink应用程序
   c. Bootstrap a Flink Maven Project引导Flink Maven项目
   d. Summary小节
 
6. 5. The DataStream API (v1.7)DataStream API(v1.7)
   a. Hello, Flink!Hello, Flink!
      i. Set Up the Execution Environment设置执行环境
      ii. Read an Input Stream读取输入流
      iii. Apply Transformations应用转换
      iv. Output the Result输出结果
      v. Execute执行
   b. Transformations转换
      i. Basic Transformations基本转换
      ii. KeyedStream TransformationsKeyedStream转换
      iii. Multistream Transformations多流转换
      iv. Distribution Transformations分布变换
   c. Setting the Parallelism设置并行度
   d. Types类型
      i. Supported Data Types支持的数据类型
      ii. Creating Type Information for Data Types为数据类型创建类型信息
      iii. Explicitly Providing Type Information明确提供类型信息
   e. Defining Keys and Referencing Fields定义key和引用字段
      i. Field Positions字段位置
      ii. Field Expressions字段表达
      iii. Key Selectorskey选择器
   f. Implementing Functions实现Functions
      i. Function ClassesFunctions类
      ii. Lambda FunctionsLambda函数
      iii. Rich Functions符函数
   g. Including External and Flink Dependencies包括外部和Flink依赖项
   h. Summary小节
 
7. 6. Time-Based and Window Operators基于时间和窗口的Operator
   a. Configuring Time Characteristics配置时间特征
      i. Assigning Timestamps and Generating Watermarks分配时间戳和生成Watermark
      ii. Watermarks, Latency, and Completeness水位线、延迟和完整性
   b. Process Functions处理Functions
      i. TimerService and TimersTimerService和定时器
      ii. Emitting to Side Outputs发射到侧面输出
      iii. CoProcessFunctionCoProcessFunction
   c. Window Operators窗口Operator
      i. Defining Window Operators定义窗口Operator
      ii. Built-in Window Assigners内置窗口分配器
      iii. Applying Functions on Windows在Windows上应用功能
      iv. Customizing Window Operators自定义窗口运算符
   d. Joining Streams on Time按时加入Streams
      i. Interval Join间隔加入
      ii. Window Join窗口加入
   e. Handling Late Data处理迟到的数据
      i. Dropping Late Events放弃迟到的事件
      ii. Redirecting Late Events重定向延迟事件
      iii. Updating Results by Including Late Events通过包含延迟事件来更新结果
   f. Summary小节
 
8. 7. Stateful Operators and Applications有状态的Operator和应用
   a. Implementing Stateful Functions实现有状态的函数
      i. Declaring Keyed State at RuntimeContext在RuntimeContext中声明keyed状态
      ii. Implementing Operator List State with the ListCheckpointed Interface使用ListCheckpointed接口实现Operator列表状态
      iii. Using Connected Broadcast State使用连接广播状态
      iv. Using the CheckpointedFunction Interface使用CheckpointedFunction接口
      v. Receiving Notifications About Completed Checkpoints接收有关已完成Checkpoint的通知
   b. Enabling Failure Recovery for Stateful Applications为有状态应用程序启用故障恢复
   c. Ensuring the Maintainability of Stateful Applications确保有状态应用的可维护性
      i. Specifying Unique Operator Identifiers指定唯一的Operator标识符
      ii. Defining the Maximum Parallelism of Keyed State Operators定义keyed状态算子的最大并行性
   d. Performance and Robustness of Stateful Applications状态应用的性能和稳健性
      i. Choosing a State Backend选择状态后端
      ii. Choosing a State Primitive选择状态原始
      iii. Preventing Leaking State防止泄漏状态
   e. Evolving Stateful Applications不断发展的有状态应用
      i. Updating an Application without Modifying Existing State更新应用程序而不修改现有状态
      ii. Removing State from an Application从应用程序中删除状态
      iii. Modifying the State of an Operator修改Operator的状态
   f. Queryable State可查询状态
      i. Architecture and Enabling Queryable State架构和启用可查询状态
      ii. Exposing Queryable State公开可查询状态
      iii. Querying State from External Applications从外部应用程序查询状态
   g. Summary小节
 
9. 8. Reading from and Writing to External Systems读写外部系统
   a. Application Consistency Guarantees应用程序一致性保证
      i. Idempotent Writes幂等性写
      ii. Transactional Writes事务性写
   b. Provided Connectors提供连接器
      i. Apache Kafka Source ConnectorApache Kafka源连接器
      ii. Apache Kafka Sink ConnectorApache Kafka Sink连接器
      iii. Filesystem Source Connector文件系统源连接器
      iv. Filesystem Sink Connector文件系统Sink连接器
      v. Apache Cassandra Sink ConnectorApache Cassandra Sink连接器
   c. Implementing a Custom Source Function实现自定义源方法
      i. Resettable Source Functions可复位的源功能
      ii. Source Functions, Timestamps, and Watermarks源函数,时间戳和水位线
   d. Implementing a Custom Sink Function实现自定义Sink功能
      i. Idempotent Sink Connectors幂等性Sink连接器
      ii. Transactional Sink Connectors事务性Sink连接器
   e. Asynchronously Accessing External Systems异步访问外部系统
   f. Summary小节
 
10. 9. Setting Up Flink for Streaming Applications为流式应用程序设置Flink
   a. Deployment Modes部署模式
      i. Standalone Cluster独立群集
      ii. DockerDocker
      iii. Apache Hadoop YARNApache Hadoop YARN
      iv. KubernetesKubernetes
   b. Highly Available Setups高可用的设置
      i. HA Standalone SetupHA独立安装程序
      ii. HA YARN SetupHA YARN设置
      iii. HA Kubernetes SetupHA Kubernetes设置
   c. Integration with Hadoop Components与Hadoop组件集成
   d. Filesystem Configuration文件系统配置
   e. System Configuration系统配置
      i. Java and ClassloadingJava和类加载
      ii. CPUCPU
      iii. Main Memory and Network Buffers主存储器和网络缓冲器
      iv. Disk Storage磁盘存储
      v. Checkpointing and State BackendsCheckpoint和状态后端
      vi. Security安全
   f. Summary小节
 
11. 10. Operating Flink and Streaming Applications运行Flink和流式应用程序
   a. Running and Managing Streaming Applications运行和管理流应用程序
      i. SavepointsSavepoint
      ii. Managing Applications with the Command-Line Client使用命令行客户端管理应用程序
      iii. Managing Applications with the REST API使用REST API管理应用程序
      iv. Bundling and Deploying Applications in Containers在容器中捆绑和部署应用程序
   b. Controlling Task Scheduling控制Task调度
      i. Controlling Task Chaining控制Task链
      ii. Defining Slot-Sharing Groups定义Slot共享组
   c. Tuning Checkpointing and Recovery调整Checkpoint和恢复
      i. Configuring Checkpointing配置Checkpoint
      ii. Configuring State Backends配置状态后端
      iii. Configuring Recovery配置恢复
   d. Monitoring Flink Clusters and Applications监控Flink群集和应用程序
      i. Flink Web UIFlink Web UI
      ii. Metric SystemMetric系统
      iii. Monitoring Latency监控延迟
   e. Configuring the Logging Behavior配置日志记录行为
   f. Summary小节
 
12. 11. Where to Go from Here?下一步?
   a. The Rest of the Flink EcosystemFlink生态系统的其余部分
      i. The DataSet API for Batch Processing用于批处理的DataSet API
      ii. Table API and SQL for Relational Analysis用于关系分析的Table API和SQL
      iii. FlinkCEP for Complex Event Processing and Pattern MatchingFlinkCEP用于复杂事件处理和模式匹配
      iv. Gelly for Graph Processing用于图处理的Gelly
   b. A Welcoming Community欢迎的社区
 
13. Index索引



1. Preface (前言 )

a. What You Will Learn in This Book(你将在本书中学到什么)

本书将向您介绍使用Apache Flink进行流式处理时需要了解的所有内容。 它由11章组成,希望能够讲述一个连贯的故事。 虽然有些章节是描述性的,旨在介绍高级设计概念,但其他章节则更具实际操作性并包含许多代码示例。

虽然我们打算在编写本书时以章节顺序阅读本书,但熟悉章节内容的读者可能希望跳过它。 其他人对立即编写Flink代码感兴趣可能需要先阅读实用章节。 在下文中,我们将简要介绍每章的内容,以便您可以直接跳转到您最感兴趣的章节。

  • 第1章概述了有状态流处理,数据处理应用程序体系结构,应用程序设计以及流处理相对于传统方法的好处。 它还简要介绍了在本地Flink实例上运行第一个流应用程序的情况。

  • 第2章讨论了流处理的基本概念和挑战,独立于Flink。

  • 第3章介绍了Flink的系统架构和内部构件。 它讨论了流式应用程序中的分布式体系结构,时间和状态处理,以及Flink的容错机制。

  • 第4章介绍如何设置开发和调试Flink应用程序的环境。

  • 第5章介绍了Flink的DataStream API的基础知识。您将学习如何实现DataStream应用程序以及支持哪些流转换,函数和数据类型。

  • 第6章讨论DataStream API的基于时间的operator。这包括窗口operator和基于时间的连接以及在流应用程序中处理时间时提供最大灵活性的过程函数。

  • 第7章解释了如何实现有状态函数并讨论了有关该主题的所有内容,例如状态函数的性能,健壮性和演变。它还显示了如何使用Flink的可查询状态。

  • 第8章介绍了Flink最常用的源和Sink连接器。它讨论了Flink的端到端应用程序一致性方法,以及如何实现自定义连接器从外部系统中提取数据和向外部系统发送数据。

  • 第9章讨论如何在各种环境中设置和配置Flink集群。

  • 第10章介绍了全天候运行的流应用程序的操作,监视和维护。

  • 最后第11章包含可用于提问,参加Flink相关事件以及了解Flink当前如何使用的资源。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值