实时处理
北北carrie
永远不怕出现bug的小白一枚!
展开
-
水位线的特点
``一个水位线, 表示当前时间已经达到了这个时间戳t,代表t时间之前的数据到齐了不会再出现小于这个时间戳的数据。```水位线的内容就是一个时间戳,表示当前事件时间的进展。```水位线可以设置延迟保证正确处理乱序数据。```水位线是插入到数据流的一个标记。```水位线是基于数据的时间戳生成的。```水位线的时间戳必须单调递增。原创 2023-03-09 10:26:02 · 100 阅读 · 0 评论 -
完整的Flink程序基本内容
获取执行环境 (execution environment)~定义数据的转换操作 (transformations)~定义计算结果的输出位置 (sink)~触发程序执行 (execute)~读取数据源 (source)一个Flink程序, -其实就是对于DataStream的各种转换.DataStream API是Flink的核心层API.原创 2023-01-06 21:44:12 · 185 阅读 · 0 评论 -
Flink并行度优先级
默认的最大并行度是近似于operatorParallelism + (operatorParallelism / 2),下限是127,上线是32768.并行度改变会影响任务划分,进而影响task数量,如果taskslots数量不满足要求,会导致任务没有足够的资源分配。setParallelism()设置的并行度需要小于.setMaxParallelism()设置的最大并行度。某些算子无法设置并行度,如socketTextStream。1.代码中设置setParallelism()原创 2023-03-07 19:15:06 · 882 阅读 · 0 评论 -
Flink提交流程总结
Yarn的ResourceManager启动TaskManager, TaskManager会启动一个TaskExecutor, 并向ResourceManager注册slot, ResourceManager收到TaskManager的请求之后会给TaskExecutor返回分配的slot, TaskExecutor给JobManager提供slot, JobManger向TaskExecutor提交执行。JobMaster: 是JobManager中最核心的组件。注: YarnClient: 客户端。原创 2023-03-07 17:17:20 · 198 阅读 · 0 评论 -
Flink运行时架构
客户端的工作原理: 调用程序的main()方法,将代码转换成"数据流图",并且最终生成作业图,一并发送给JM. 提交之后,任务的执行和客户端就没关系了.当然客户端是否断开与JM的连接是可以选择的,也可以让继续保持连接.客户端可以随时连接到JobManager,获取当前作业的状态和执行结果,也可以发送请求取消作业。所以JobMaster和具体的Job是一一对应的,多个Job可以同时运行在一个Flink集群中, 每个Job都有一个自己的JobMaster。:客户端不属于处理系统的一部分,只负责作业的提交.原创 2023-03-07 16:48:22 · 128 阅读 · 0 评论 -
Flink模式
如果TaskManager进程异常退出,JobManager会收到消息并且重新向Yarn ResourceManager 申请资源,重新启动TaskManager。4.TaskManager启动一个线程开始执行. TaskManager会向JobManager报告状态更改,比如开始执行, 正在执行或者已经完成。3.JobManager负责协调资源和作业执行. 资源分配完成之后,任务将提交给相应的TaskManager。3.flink on yarn 有三种模式:会话模式,但作业模式,应用模式。原创 2023-03-06 20:27:35 · 228 阅读 · 0 评论 -
spark任务的提交流程
第三步,因为在用户代码中,RDD算子会设计大量的转换操作,然后会通过一个动作(action)操作,触发任务的真正执行,在这里会按照RDD与RDD之间的依赖关系,首先会生成一个DAG的有向无环图,图的方向就是RDD算子的操作顺序,最终会将RDD DAG有向无环图发送给DAGScheduler对象;Master收到申请资源的请求后,向指定的worker节点发送请求,然后worker节点会开启对应的executor的进程。Executor进程会向driver发送注册请求,然后申请要计算的task。原创 2023-02-27 18:41:53 · 770 阅读 · 0 评论 -
流处理环境为什么设置ttl?
为什么要设置: 如果我们在数据流上进行分组查询,分组处理产生的结果(不仅仅是聚合结果)会作为中间状态存储下来。随着分组key的不断增加,状态自然也会不断膨胀。但是这些状态数据基本都有时效性,不必永久保留。例如,使用Top-N语法进行去重,重复数据的出现一般都位于特定区间内(例如一小时或一天内),过了这段时间之后,对应的状态就不再需要了。Flink SQL提供的idle state retention time特性可以保证当状态中某个key对应的数据未更新的时间达到阈值时,该条状态被自动清理。原创 2023-02-05 22:39:16 · 162 阅读 · 0 评论 -
DWD-流量域未经加工的事务事实表(日志分流)
4.简单的ETL以及类型转换 jsonStr -> jsonObj 将脏数据放到侧输出流中。8.将不同流数据写到kafka不同的topic中。5.将侧输出流中的脏数据写到kafka主题中。3.从kafka主题中读取相关设置。错误日志 -> 错误侧输出流。启动日志 -> 启动侧输出流。曝光日志 -> 曝光侧输出流。动作日志 -> 动作侧输出流。页面日志 -> 页面侧输出流。2. 检查点相关的设置。6.修复新老访客标记。原创 2023-02-03 22:48:47 · 134 阅读 · 0 评论