2015-06-23 27 views
0

我在嘗試使用由Google提供的Wordcount示例。當我從本地機器運行它時,它正在成功運行。數據流在g1小型實例上出現java.io.IOException失敗

但是當我通過谷歌雲中運行它,它失敗,出現以下異常,

java.io.IOException: INTERNAL: Finalize rejected (writer id not found) when talking to tcp://localhost:12345 

異常尚不清楚爲好。

我發現這種情況發生在任何作業是部分運行並且之後的作業未運行時。

enter image description here

所以,當我刪除了Sum.Perkey改造它已成功運行。

像下面那樣。 enter image description here

編輯1

日誌說以下

Jun 23, 2015, 5:21:27 PM 
(306b526c890d6a9e): java.io.IOException: INTERNAL: Finalize rejected (writer id not found) when talking to tcp://localhost:12345 at com.google.cloud.dataflow.sdk.runners.worker.ApplianceShuffleWriter.close(Native Method) at 

com.google.cloud.dataflow.sdk.runners.worker.ChunkingShuffleEntryWriter.close(ChunkingShuffleEntryWriter.java:66) at 

com.google.cloud.dataflow.sdk.runners.worker.ShuffleSink$ShuffleSinkWriter.close(ShuffleSink.java:232) at 

com.google.cloud.dataflow.sdk.util.common.worker.WriteOperation.finish(WriteOperation.java:100) at 

com.google.cloud.dataflow.sdk.util.common.worker.MapTaskExecutor.execute(MapTaskExecutor.java:74) at com.google.cloud.dataflow.sdk.runners.worker.DataflowWorker.doWork(DataflowWorker.java:130) at 

com.google.cloud.dataflow.sdk.runners.worker.DataflowWorker.getAndPerformWork(DataflowWorker.java:95) at 

com.google.cloud.dataflow.sdk.runners.worker.DataflowWorkerHarness$WorkerThread.call(DataflowWorkerHarness.java:139) at 
com.google.cloud.dataflow.sdk.runners.worker.DataflowWorkerHarness$WorkerThread.call(DataflowWorkerHarness.java:124) at 

java.util.concurrent.FutureTask.run(FutureTask.java:266) at 

java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at 

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 

我的作業ID:2015-06-23_04_49_22-5338020413017331855

請幫我爲什麼發生這種情況。

+0

對不起這個問題。爲了幫助我們進行調查,您是否可以編輯問題以包含失敗管道的完整輸出,包括作業ID? – jkff

+0

你能告訴我你指什麼完整的輸出?這是它失敗時的例外嗎? –

+0

是的,我的意思是主程序輸出到控制檯,例如像這裏:http://stackoverflow.com/questions/28872174/using-cloud-dataflow-side-input-works-locally-but-not-when-executing-in-the-c – jkff

回答

1

我修復了這個問題。

我設置工作機種在我的管道選項

g1-small 

以前我是用

f1-micro 

當我們使用合併或的GroupBy變換,我們必須使用G1小型工作機它似乎。

但是我無法在數據流文檔中的任何位置找到此信息。

如果Google記錄如何使用計算引擎實例進行數據流,那將會很不錯。 這會節省很多我的時間。

+0

爲什麼要顯式設置機器類型而不是讓Dataflow選擇它? –

相關問題