Apache Flink洗牌策略?它是否像Hadoop中的shuffle一样?

时间:2017-09-28 08:28:34

标签: apache-flink

例如在hadoop中,map和reduce之间存在一个shuffle阶段。而且我想知道flink中是否存在这样一个阶段,以及它是如何工作的。因为我已经阅读了很多网站,所以他们没有提到太多关于它的内容。比如一个wordcount演示,它有一个flatmap,key和sum两个运营商之间总是存在洗牌阶段吗?我可以在这些运营商之间获得中间数据吗?

1 个答案:

答案 0 :(得分:0)

不总是执行随机播放,它仅取决于特定的操作符。在您的示例中,wordCount示例中的keyby步骤引入了一个散列分区程序,它根据键执行数据的混洗。

在其他情况下 - 例如 - 如果您只想在没有某种形式的聚合的情况下处理和过滤数据然后在某处写入,那么每个分区都会保留自己的数据,并且不会是任何类型的洗牌涉及。

所以回答你的问题 -

  1. 不,两个运营商之间并不总是涉及洗牌,这取决于它。
  2. 如果您询问一些可以在Hadoop中访问的中间文件,那么答案是否,Flink是内存处理引擎,并且(在大多数情况下)处理在内存中读取的数据。