Flink 上下游算子并发之间的数据传递方式

DataStream上游算子向下游算子发送数据的不同方式:

  1. forward (默认)

the output elements are forwarded to the local subtask of the next operation.

上游算子某个并发直接将数据发给同一个slot中的下游算子的并发,

适用于

  • 上下游算子并发度一致
  • 数据没有倾斜


    forward
  1. rebalance

the output elements are distributed evenly to instances of the next operation in a round-robin fashion.

按照round-robin的方式,决定上游算子的某个并发的数据发往下游的哪个并发。该方法可以保证从上游算子到下游算子的数据是绝对均匀发送的。但是不同并发之间的数据交互存在网络传输开销。

适用于

  • 上下游算子并发度不一致
  • 存在数据倾斜
rebalance
  1. shuffle

the output elements are shuffled uniformly randomly to the next operation.

按照均匀分布的随机数,决定上游算子的某个并发的数据发往下游的哪个并发。该方法与rebalance类似,但是会增加随机数生成的开销。并且因为是随机的,最后结果未必是百分百均匀的,但是概率上是均匀分布的。但是不同并发之间的数据交互存在网络传输开销。

适用于

  • 上下游算子并发度不一致
  • 存在数据倾斜
shuffle
  1. rescale

the output elements are distributed evenly to a subset of instances of the next operation in a round-robin fashion.
The subset of downstream operations to which the upstream operation sends
elements depends on the degree of parallelism of both the upstream and downstream operation.
For example, if the upstream operation has parallelism 2 and the downstream operation has parallelism 4, then one upstream operation would distribute elements to two downstream operations while the other upstream operation would distribute to the other two downstream operations. If, on the other hand, the downstream operation has parallelism 2 while the upstream operation has parallelism 4 then two upstream operations will distribute to one downstream operation while the other two upstream operations will distribute to the other downstream operations.
In cases where the different parallelisms are not multiples of each other one or several downstream operations will have a differing number of inputs from upstream operations.

按照分组round-robin的方式,决定上游算子的某个并发的数据发往下游的哪个并发。比如上游算子2并发度,下游4并发度,则每1个上游算子以round robin的方式发送到下游的2个算子;反过来上游算子4并发度,下游2并发度,则2个上游算子的并发度发送到1个下游段子的并发度。如果上下游算子的并发度不成倍数关系,则有几个下游算子的并发的入度可能与其他的并发不同。相比rebalance的好处是:只有部分并发节点之间存在数据传输的开销;坏处是不能很好地解决数据倾斜的问题。

适用于

  • 上下游算子并发度不一致(最好是整数倍)
rescale
  1. global

the output values all go to the first instance of the next processing operator. Use this setting with care since it might cause a serious performance bottleneck in the application.

所有上游算子往下游算子的第一个并发发送

可能存在严重的性能问题,一般不用

适用于

  • 所有结果汇总
global
  1. broadcast

the output elements are broadcast to every parallel instance of the next operation.

所有上游算子的并发产生的数据往每个下游算子的并发发送一份,也就是每个下游算子的并发得到的数据都是全量的。一般要结合BroadcastState来使用,常用于控制流的广播

适用于

  • 控制数据流的广播
broadcast
  1. keyby

uses the provided key with explicit type information for partitioning its operator states.

每个上游算子的并发产生的数据中抽取key,对key进行hash后发送给对应的下游算子的并发,可以保证同一个key的数据必然发送到同一个下游算子的并发上。但是同一个下游算子可能用于处理多个不同的key,但是这些处理都是分开的

适用于

  • 需要按照key来处理的数据。需要注意,选取key时,要尽量选取能使得数据分散的字段,比如ip、timestamp等等,不要选取如sex等区分数较少的字段
keyby
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容