flink

---Hadoop可以算得上是第一代大数据计算框架,能够很好地完成批处理任务

---Spark则是在Hadoop的基础上进行性能的提升,内存计算、迭代计算,实现了计算性能上的大大提升。

---Flink框架相比Spark多了优秀的实时流处理,大大降低了流计算的延迟。Flink所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已(批处理的时候就是把输入的数据流视为有界的,而流处理时是为无界的)。在Flink框架当中,所有的任务当成流来处理,因此实现了更低延迟的实时流处理。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

流处理:数据生产者将数据记录(也叫事件)写入有序数据流,数据使用者可以从中按相同顺序读取数据。----自己的理解:生产者实时的,源源不断的把数据往流里写,流里可能用flink之类的流处理框架做一些处理,处理完之后再发给消费者

流处理和批处理的区别

流处理:在线,实时产生的数据。单次处理的数据量小,但处理速度更快。

批处理:处理离线数据,冷数据。单个处理数据量大,处理速度比流慢。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Flink有JobManager和TaskManager

JobManager:也称之为Master用于协调分布式执行,它们用来调度task协调检查点,协调失败时恢复等。Flink运行时至少存在一个master处理器,如果配置高可用模式则会存在多个master处理器,其中有一个是leader其他都是standby。我理解这个就类似于redis里的哨兵

TaskManager:也称之为Worker,用于执行一个dataflow的task(或者特殊的subtask)、数据缓冲和datastream的交换,Flink运行时至少会存在一个worker处理器。

我理解worker就是干活的,master是监控和调度的

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Flink任务提交流程

Flink提交任务后Client向HDFS上传Flink的jar包和配置,之后向Yarn ResourceManager提交任务,ResourceManager分配容器资源并通知对用的NodeManager启动ApplicationMaster,ApplicationMaster启动后加载Flink的jar包和配置构建环境,然后启动JobManager,之后ApplicationMaster向ResourceManager申请资源启动TaskManager,ResourceManager分配容器资源后由ApplicationMaster加载Flink的jar包和配置构建环境并启动TaskManager,TaskManager启动后向JobManager发送心跳包,并等待JobManager向其分配任务。

HDFS:hadoop分布式文件系统。具体的没细查

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

TaskManager与Slots

每个TaskManager(worker)是一个JVM进程,它可能会在独立的线程上执行一个或多个subtask。为了控制一个worker能接收多少个task,worker通过task slot来进行控制(一个worker至少有一个task slot)。task slot是用内存来拆分的,比如一个worker有三个slot,那么就是把这个worker的内存分成三份给slot,不同的slot的内存是隔离的

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Flink程序由Source、Transformation、Sink三个核心组件组成,Source主要负责数据读取,Transformation主要负责对数据的处理转换,Sink主要负责最终数据的输出,在各个组件之间流转的数据称为流(streams)。Transformations是以一个或多个stream作为输入的某种operation,利用这些stream进行计算从而产生一个或多个result stream。

DataFlow就指的下面这张拓扑图,包括source、Transformation、Sink和在他们中间流转的stream

parallelism(并发性)暂时不理解啥意思就先放放

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Exactly-once:严格一次。因为流处理的框架一般都是分布式、并行性的,流处理一般要求一条数据恰好被其中的某个operator(Flink里的Transformation)成功处理一次;既不能重复处理,也不能不处理,也不能因为失败就丢弃了(因此要求有重试机制)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这一段没太理解,有空再研究

https://blog.csdn.net/weixin_44240370/article/details/102594925

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值