0%

学习

博客每周写一篇

技术书每月一本

考一个技术证书

实践

算法每两周一个

知识用到工作中

每周听樊登读书

保持

每天冥想

阅读全文 »

ProcessingTime

  • 处理时间窗口基于机器时间触发
  • 在窗口算子中使用处理时间会导致不确定性,应为窗口取决于元素到达的速率
  • 由于处理任务无需等待水位线来驱动事件时间前进,所以可以提供地延迟

EventTime

  • 指定算子根据数据自身包含的信息决定当前时间
  • 每一个事件时间都有一个时间戳,系统的逻辑时间由水位线来定义
  • 只有依靠水位线声明某个时间间隔内所有时间戳都已收到时,事件时间窗口才出发
  • 即使乱序,事件时间窗口也会计算出正确结果
  • 窗口结果不会取决于数据流的读取和处理速度
  • 当使用EventTime的同时,可以使用处理时间窗口和计时器

IngetionTime

  • 指定每个接收记录都把数据源算子的处理时间作为事件时间的时间戳,并自动生成水位线
  • 时间进入流处理引擎的时间
  • EventTime相比,价值不大,因为性能和EventTime类似,但是无法提供确定的结果

代码示例

1
2
3
4
5
6
7
def main(args: Array[String]) {

// set up the streaming execution environment
val env = StreamExecutionEnvironment.getExecutionEnvironment

// use event time for the application
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)

源码

是一个枚举类

阅读全文 »

1.TaskManager上算子运行

(1)可以同时执行多个任务
(2)每个TaskManager可以有多个Slot
(3)每个Slot可执行过高算子,但是每个Slot中只能有一个同样的算子
(4)TaskManager中的多个任务可以在同一个进程内高兴第执行,数据交换无需访问网络
(5)任务过于集中,使得TaskManager负载过高,从而导致性能下降
(6)后面控制任务调度会讲到

2.TaskManager运行

(1)TaskManager会在同一个JVM进程内以多线程方式执行任务
(2)和独立进程相比,线程更加轻量级并且通信开销更低
(3)但是无法严格隔离任务
(4)只要有一个任务运行异常,就可能沙溪TaskManager,导致TaskManager上的所有任务失败
(5)可以将TaskManager配置成一个TaskManager有一个Slot
(6)通过在TaskManager内部采用线性并行级每个主机上多部署TaskManager

阅读全文 »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate
阅读全文 »