2017-09-28 22 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

如果你用更多的信息更新你的問題,或者用你想做的事情創建一個新問題,有些人可以在這裏幫忙。 –