我正在使用DataflowPipelineRunner創建數據流作業。我嘗試了以下場景。從Google App Engine應用程序運行Google Dataflow管道?
- 沒有與N1-HIGHMEM-2
在上述所有的情況下指定任何machineType
我得到了內存不足錯誤在所有的情況下
我的編譯後的代碼大小爲94MB。我只嘗試字數統計的例子,它沒有讀取任何輸入(它在作業開始之前失敗)。請幫我理解爲什麼我得到這個錯誤。
注:我正在使用appengine來開始工作。
注:相同的代碼與測試工作versoin 0.4.150414
編輯1
按在回答嘗試以下的建議,
- 交換從自動縮放到基本縮放。
- 二手機器類型B2提供256MB存儲器
這些配置完成後,Java堆內存問題就解決了。但它試圖將一個罐子上傳到超過10Mb的錯誤位置,因此失敗。
它記錄了以下異常
com.google.api.client.http.HttpRequest execute: exception thrown while executing request
com.google.appengine.api.urlfetch.RequestPayloadTooLargeException: The request to https://www.googleapis.com/upload/storage/v1/b/pwccloudedw-stagging-bucket/o?name=appengine-api-L4wtoWwoElWmstI1Ia93cg.jar&uploadType=resumable&upload_id=AEnB2Uo6HCfw6Usa3aXlcOzg0g3RawrvuAxWuOUtQxwQdxoyA0cf22LKqno0Gu-hjKGLqXIo8MF2FHR63zTxrSmQ9Yk9HdCdZQ exceeded the 10 MiB limit.
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationException(URLFetchServiceImpl.java:157)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:45)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.fetchResponse(URLFetchServiceStreamHandler.java:543)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getInputStream(URLFetchServiceStreamHandler.java:422)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getResponseCode(URLFetchServiceStreamHandler.java:275)
at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:36)
at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:94)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:965)
at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequestWithoutGZip(MediaHttpUploader.java:545)
at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequest(MediaHttpUploader.java:562)
at com.google.api.client.googleapis.media.MediaHttpUploader.resumableUpload(MediaHttpUploader.java:419)
at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:336)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:427)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.google.cloud.hadoop.util.AbstractGoogleAsyncWriteChannel$UploadOperation.call(AbstractGoogleAsyncWriteChannel.java:357)
at java.util.concurrent.FutureTask.run(FutureTask.java:260)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1168)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:605)
at com.google.apphosting.runtime.ApiProxyImpl$CurrentRequestThreadFactory$1$1.run(ApiProxyImpl.java:1152)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.apphosting.runtime.ApiProxyImpl$CurrentRequestThreadFactory$1.run(ApiProxyImpl.java:1146)
at java.lang.Thread.run(Thread.java:745)
at com.google.apphosting.runtime.ApiProxyImpl$CurrentRequestThreadFactory$2$1.run(ApiProxyImpl.java:1195)
我試着直接上傳的jar文件 - 的AppEngine-API-1.0-SDK-1.9.20.jar,它仍然試圖上傳這個罐子appengine- api-L4wtoWwoElWmstI1Ia93cg.jar。 我不知道它是什麼罐子。任何想法這個罐子是讚賞。
請幫我解決這個問題。
的幾個問題 - 什麼SDK您使用的版本,你能提供一個作業ID? –
你能分享你得到的例外嗎?您是否在本地(在appengine上)看到OOM,或者在管道啓動後是否看到OOM?如果OOM發生在appengine上,那麼你可能會碰到http://stackoverflow.com/questions/33647161/pipeline-submission-from-app-engine –
我將appengine機器類型更改爲F2,我沒有得到OOM錯誤現在。但它試圖展示超過10mm的文件,並且它可以恢復上傳。上傳花費了大量的時間,並且我得到了超出執行時間限制的異常。對此有任何想法。 –