栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Flink、Kafka梳理

Flink、Kafka梳理

flink是什么

flink是一个框架和分布式处理引擎,对于有界流和无界流进行有状态计算

flink的几种模式

独立集群模式:flink可以不依赖于hadoop集群
flink on yarn:依赖于hadoop集群
yarn-session -jm 1024 -tm 1096  (jm jobmanagermemory tm taskmanagermemory)
flink run -c 
先在yarn上启动一个jobmanager 所有job共享一个jobmanager
​
flink run -m yarn-cluster 
per job-cluster
直接提交任务到yarn集群上,每一个job独享一个jobmanager

flink的几种提交模式

web页面提交
flink run -c
rpc远程提交(
创建flink环境
StreamExecutionEnvironment.createRemoteEnvironment("ip",PORT,"jarFile")
)

kafka

kafka架构

producer:消息生产者
consumer:消息消费者
broker:kafka集群的server,负责处理消息读,写请求,存储消息
topic:消息队列、分类 一个topic中的数据结构要一样
queue里面有生产者消费模型

kafka的消息存储和生产消费模型

一个topic分成多个partition
每个partition内部有序,都有一个offset
消息不经过内存缓冲,直接写入文件(零拷贝)
根据实践策略删除,不是消费完就删除
producer写入partition可以是轮询也可以是hash
consumer自己维护消费到哪个offset
一个消息在一个组内只被消费一次

kafka有哪些特点

消息系统的特点:生产者消费者模型,FIFO(先进先出,一个分区的时候才能保证顺序)
高性能:单节点支持上千个客户端,百MB/s吞吐
持久性:消息直接持久化在普通磁盘上且性能好
分布式:数据副本冗余 、流量负载均衡、可扩展
很灵活:消息长时间持久化+Client维护消费状态

为什么kafka快

1.顺序读写
2.零拷贝技术(spark reduce端到map端拉文件也是零拷贝技术)
3.批量读写

kafka搭建

修改config/server/properties
1.broker.id=0每一个节点的broker.id不一样
2.zookeeper.connect = master:2181
3.log.dirs 消息存放的位置
分布式的要分发到不同的节点
​
kafka-server-start.sh -daemon(后台启动) 配置文件的路径

kafka生产消费

exactly-once

如何保证kafka结合flink的只消费一次
要实现唯一一次从三个方面来说

生产端

 幂等性(保证数据只发送一次)
 事务性(提交数据要成功都成功,要失败都失败)
 ack(保证数据不丢失)

消费端

  当消费数据的算子做聚合计算的时候,虽然数据会发送两次,但是算子计算会返回到上个checkpoint时计算,只计算一次。

sink端

    开启两次提交,将参数改为EXACTLY_onCE 模式匹配到EXACTLY_onCE 会开启事务,数据就不会重复发送
Semantic.EXACTLY_onCE 

flink四大基石

Checkpoint

1、jobmanager定时做checkpoint向sourcetask发送触发器
2、sourcetask给数据打上标记,同事将checkpoint存到hdfs中
3、下游算子对标记进行异步处理
4、当所有算子处理完同一个标记,就完成了一次checkpoint

State

ValueState、MapState、ListState、ReducingState
状态会保存计算的结果持久化到hdfs
结合Checkpoint

Time

事件时间 Event time:数据自带的时间,是数据真实发生的时间。
接收时间 Ingestion time:数据到达DataSource的时间
处理时间 Processing time:数据被处理的时间,处理这条数据的时间
​
​
水位线:
默认最新一条数据的事件时间
水位线的主要作用是为了防止乱序
​

Window

时间窗口 Time Window
    事件时间窗口(事件滚动窗口,事件滑动窗口)
    处理时间窗口(处理滚动窗口,处理滑动窗口)
会话窗口 Session Window(当多久没有数据,对前面的数据进行计算)
    事件时间会话窗口
    处理时间会话窗口
统计窗口 Count Window
    滑动统计窗口
    滚动统计窗口
    
窗口触发的条件
水位线大于窗口的结束时间,窗口内有数据
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742667.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号