2017-09-27 61 views
0

昨天我開始了Google-Dataflow的工作,通常運行時間大約10-30分鐘。它今天早上還在運行。當查看堆棧驅動程序時,我看到一個作業日誌的重複循環:谷歌Dataflow管道堵在shuffeling上

I Refused to split GroupingShuffleReader <at position ShufflePosition(base64:AAAABOA3nVgAAQ) of shuffle range [ShufflePosition(base64:AAAAAAD_AP8A_wD_AAE), ShufflePosition(base64:AAAABOA3nVkAAQ))> at ShufflePosition(base64:AAAABOA3nVkAAQ) 
E Refusing to split <at position ShufflePosition(base64:AAAABOA3nVgAAQ) of shuffle range [ShufflePosition(base64:AAAAAAD_AP8A_wD_AAE), ShufflePosition(base64:AAAABOA3nVkAAQ))> at ShufflePosition(base64:AAAABOA3nVkAAQ): proposed split position out of range 
I Proposing dynamic split of work unit our-project-id;2017-09-26_09_29_26-14666853265610614017;1268593085087986642 at {"fractionConsumed":1.0,"position":{"shufflePosition":"AAAABOA3nVkAAQ"}} 
I Setting node annotation to enable volume controller attach/detach 

我現在取消了這個工作。在這項工作開始之前,我將工人的磁盤大小減少到了40GB,因爲我們的配額達到了10,240GB(!!!),超過了約1​​5個工作。我會將磁盤大小增加到100GB左右,但更多不應該是必需的。

有關如何解決此問題的任何建議,或者如何發生這種情況?這也將是有趣的這個錯誤是什麼真正的意思...

的作業ID:2017-09-26_09_29_26-14666853265610614017

enter image description here

步「ToElasticsearch」被顯示16小時之前,我取消了作業。在這一步中,每篇文章只有http-Posts到Elasticsearch

+0

我看着這份工作,它似乎永遠停留在ToElasticsearch步驟的一個記錄中 - 看起來你的用戶代碼正在做一些永遠需要的事情,例如,正在對失敗的HTTP請求進行無限重試循環,或類似的事情。您可能需要將一些日誌記錄添加到ToElasticsearch步驟以調試問題。 – jkff

+0

(您看到的日誌記錄是正常操作的一部分,與問題無關 - 我同意這很令人困惑,尤其是在ERROR級別記錄的消息) – jkff

+0

如果您使用的是2.1.0 SDK或更新的版本,應該可以通過在日誌中搜索短語「Processing lull」來找到這些卡住的元素。 –

回答

0

最可能的原因是你有一個熱鍵。具體來說,其中一個鍵產生大部分輸出。在這種情況下,工作並沒有很好地分配給可用的工作人員。您可以嘗試在單個輸入可能有多個輸出的步驟之後插入Reshuffle變換。這聽起來像在ReadArticlesFromDatastore步驟之後這樣做可能是正確的。

+0

一般而言,這是一個很好的建議,但在這種情況下,它不是一個熱門的鍵,但它是一個單一的卡住值。 – jkff

相關問題