Flink学习日记(一)

单并行Source与多并行Source区别

简单对比一下fromCollectionfromParallelCollectionsocketTextStream.这3个source的区别.

当我们在创建Flink的执行环境的时候,它就会获取我们当前机器的一个默认并行度.
就在StreamExecutionEnvironment中会有一个Java方法.

/** The default parallelism used when creating a local environment. */
private static int defaultLocalParallelism = Runtime.getRuntime().availableProcessors();

其实就是获取逻辑核也就是线程数.

fromCollection

fromCollection是一个单并行的Source,它要求传入Collection或者Iterator.在这里插入图片描述
看起来有四个方法,其实只有两个.
例如:
在这里插入图片描述
单个参数的 fromCollection 最后有调用了两个参数的 fromCollection.
最后会再调用addSource,并且在最后setParallelism并行度为1.
另外两个方法也是一样.
在这里插入图片描述
虽然没有像上面两个方法一样显式的setParallelism.但是运行中它的并行度也是1.
在这里插入图片描述

这四个方法在最后调用addSource的时候都有一个 new FromIteratorFunction 的动作…
当我们点进 FromIteratorFunction就可以看到 FromIteratorFunction是实现了SourceFunction.
在这里插入图片描述

socketTextStream

socketTextStream也是一个单并行的Source,当我们点进去会看到,最后的最后还是调用的addSource
在这里插入图片描述
在addSource中 new 了一个 SocketTextStreamFunction…我们轻车熟路的点进去看看…
在这里插入图片描述
发现它也是实现了SourceFunction.

fromParallelCollection

fromParallelCollection是一个多并行的Source.不出意外它最后调用的也是addSource
在这里插入图片描述

在addSource中 new FromSplittableIteratorFunction.当我们在进去的时候就会发现FromSplittableIteratorFunction继承了RichParallelSourceFunction.
在这里插入图片描述
我们在看看RichParallelSourceFunction,它最后是实现了ParallelSourceFunction
在这里插入图片描述
我们看下还有那些类实现了ParallelSourcefunction.
在这里插入图片描述

总结如下:
如果是多并行的Source 可以继承RichParallelSourceFuncation 或者实现 ParallelSourceFuncation接口
如果是单并行的Source 是直接实现 SourceFuncation接口

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值