Flink特异的迭代操作-bulkIteration

迭代算法在很多数据分析领域会用到,比如机器学习或者图计算。为了从大数据中抽取有用信息,这个时候往往会需要在处理的过程中用到迭代计算。大数据处理框架很多,比如sparkmr。实际上这些实现迭代计算都是很困难的。

Flink神奇之处就是它直接支持迭代计算。Flink实现迭代的思路也是很简单,就是实现一个step函数,然后将其嵌入到迭代算子中去。有两种迭代操作算子:IterateDelta Iterate。两个操作算子都是在未收到终止迭代信号之前一直调用step函数。

本小节是主要是讲解理论。

迭代操作算子包括了简单的迭代形式:每次迭代,step函数会消费全量数据(本次输入和上次迭代的结果),然后计算得到下轮迭代的输出(例如,mapreducejoin)

1.迭代输入(Iteration Input)

第一次迭代的初始输入,可能来源于数据源或者先前的操作算子。

2. Step函数

每次迭代都会执行step函数。其是由mapreducejoin等算子组成的数据流,根据业务定制的。

3. 下次迭代的部分结果(Next Partial Solution):

每次迭代,step函数的输出结果会有部分返回参与继续迭代。

4. 最大迭代次数

如果没有其他终止条件,就会在聚合次数达到该值的情况下终止。

5. 自定义聚合器收敛:

迭代允许指定自定义聚合器和收敛标准,如sum会聚合要发出的记录数(聚合器),如果此数字为零则终止(收敛标准&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值