2017-09-28 21 views
0

如在hadoop中,map和reduce之间有一个混洗阶段。我想知道flink是否有这样的一个阶段,以及它是如何工作的。因为我已经阅读了很多网站,他们没有提及太多。例如wordcount演示,它有一个flatmap,key和sum 。两个操作员之间总是有一个洗牌阶段吗?我能得到这些操作员之间的中间数据吗?Apache Flink shuffle的策略?它像在Hadoop中洗牌吗?

+0

你能澄清一下你想知道什么吗? –

回答

0

洗牌不总是执行,它只取决于特定的操作员。以您的示例为例,wordCount示例中的关键步骤引入了散列分区程序,该散列分区程序基于密钥执行数据混洗。例如,如果您只想在没有某种形式的聚合的情况下处理和过滤数据,然后在某处写入,则每个分区都将保存自己的数据,并且不会有任何种类的混洗参与其中。

因此,要回答你的问题 -

  1. 没有,洗牌并不总是参与2个运营商和它取决于之间。
  2. 如果您询问您可以在Hadoop中访问的某些中间文件,则答案为否,Flink是内存中处理引擎,并且(在大多数情况下)会处理在内存中读取的数据。
+0

谢谢,所以,我有没有办法对内存中的数据做些什么?我记得Spark有一个让用户在map和reduce之间读取数据的类。 – ZeMi

+0

我想说这取决于你想要做什么。我喜欢相信总有一种方法! –

+0

如果你用更多的信息更新你的问题,或者用你想做的事情创建一个新问题,有些人可以在这里帮忙。 –