首页 文章

无法更新Python Cloud Dataflow中的工作状态异常

提问于
浏览
2

我有一个Python Cloud 数据流作业,可以在较小的子集上正常工作,但似乎没有明显的原因在整个数据集上失败 .

我在Dataflow接口中遇到的唯一错误是标准错误消息:

尝试了4次工作项没有成功 . 每次 Worker 最终都失去与服务的联系 .

分析Stackdriver日志只显示此错误:

工作循环中的异常:Traceback(最近一次调用最后一次):文件“/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py”,第736行,在运行中deferred_exception_details = deferred_exception_details)文件“/ usr / local / lib / python2.7 / dist-packages / dataflow_worker / batchworker.py“,第590行,在do_work中exception_details = exception_details)文件”/usr/local/lib/python2.7/dist-packages/apache_beam/utils /retry.py“,第167行,在包装返回乐趣(* args,** kwargs)文件”/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py“,第454行,在report_completion_status中exception_details = exception_details)文件“/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py”,第266行,在report_status中work_executor = self.work_executor)文件“/ usr / local / lib / python2 . 7 / dist-packages / dataflow_worker / workerapiclient.py“,第364行,在report_status response = self.client.projects_jobs_workItems.ReportStatus(request)File”/usr/local/lib/python2.7/dist-packages/apache_beam /internal/clients/dataflow/dataflow_v1b3_client.py“,第210行,在ReportStatus配置中,请求,global_params = global_params)文件”/usr/local/lib/python2.7/dist-packages/apitools/base/py/base_api . py“,第723行,在_RunMethod中返回self.ProcessHttpResponse(method_config,http_response,request)文件”/usr/local/lib/python2.7/dist-packages/apitools/base/py/base_api.py“,第729行,在ProcessHttpResponse self . ProcessHttpResponse(method_config,http_response,request))文件“/usr/local/lib/python2.7/dist-packages/apitools/base/py/base_api.py”,第599行,在__ProcessHttpResponse中http_response.request_url, method_config,request)HttpError:HttpError访问https://dataflow.googleapis.com/v1b3/projects//jobs/2017-05-03_03_33_40-3860129055041750274/workItems:reportStatus?alt=json>:响应:<{'status': '400','content-length':'360','x-xss-protection':'1; mode = block','x-content-type-options':'nosniff','transfer-encoding':'chunked','vary':'Origin,X-Origin,Referer','server':'ESF' ,'-content-encoding':'gzip','cache-control':'private','date':'Wed,03 May 2017 16:46:11 GMT','x-frame-options':'SAMEORIGIN ','content-type':'application / json; charset = UTF-8'}>,content <{“error”:{“code”:400,“message”:“(2a7b20b33659c46e):无法发布工作更新的结果 . 原因:(2a7b20b33659c523):失败更新工作状态 . 原因:(8a8b13f5c3a944ba):无法更新工作状态 . ,(8a8b13f5c3a945d9):工作\“4047499437681669251 \”未租赁(或租约丢失) . “,”status“:”INVALID_ARGUMENT“}}>

我假设这个 Failed to update work status 错误与Cloud Runner有关?但由于我没有在网上找到关于此错误的任何信息,我想知道是否有其他人遇到过它并且有更好的解释?

我正在使用 Google Cloud Dataflow SDK for Python 0.5.5 .

1 回答

  • 2

    租约到期的一个主要原因与VM上的内存压力有关 . 您可以尝试在具有更高内存的计算机上运行您的作业 . 特别是,highmem机器类型应该做到这一点 .

    有关机器类型的更多信息,请查看GCE Documentation

    下一个Dataflow版本(2.0.0)应该能够更好地处理这些情况 .

相关问题