【发布时间】:2019-11-30 04:56:31
【问题描述】:
我正在使用Dataflow 从BigQuery 读取数据,然后使用python 进行NLP 预处理。我正在使用Python 3 和SDK 2.16.0。我正在使用 100 个工作人员(提供 IP、私有访问和云 NAT),工作人员位于 europe-west6 中,端点位于 europe-west1 中。 BigQuery 表位于 US 中。测试作业正常运行,但在尝试处理完整表 (32 GB) 时,作业在 6 小时 40 分钟后失败,很难完全理解潜在的错误。
首先由 Dataflow 报告以下内容: 这有点令人困惑:在一个案例中,工作项失败,另外 2 名工作人员与服务失去联系,一名工作人员被报告死亡!
现在让我们看看读取 BigQuery 数据的日志: 可疑的第一件事是在完整数据流作业期间每 3 秒出现一次消息“由于 401(尝试 1/2)而正在刷新”。我不认为这与崩溃有关,但这很奇怪。 BigQuery 问题的时间戳(16:28:07 和 16:28:15)出现在工作人员报告的问题(16:27:44)之后。
An exception was raised when trying to execute the workitem 7962803802081012962 : Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/batchworker.py", line 649, in do_work
work_executor.execute()
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/executor.py", line 176, in execute
op.start()
File "dataflow_worker/native_operations.py", line 38, in dataflow_worker.native_operations.NativeReadOperation.start
File "dataflow_worker/native_operations.py", line 39, in dataflow_worker.native_operations.NativeReadOperation.start
File "dataflow_worker/native_operations.py", line 44, in dataflow_worker.native_operations.NativeReadOperation.start
File "dataflow_worker/native_operations.py", line 48, in dataflow_worker.native_operations.NativeReadOperation.start
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/nativefileio.py", line 204, in __iter__
for record in self.read_next_block():
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/nativeavroio.py", line 198, in read_next_block
fastavro_block = next(self._block_iterator)
File "fastavro/_read.pyx", line 738, in fastavro._read.file_reader.next
File "fastavro/_read.pyx", line 662, in _iter_avro_blocks
File "fastavro/_read.pyx", line 595, in fastavro._read.null_read_block
File "fastavro/_read.pyx", line 597, in fastavro._read.null_read_block
File "fastavro/_read.pyx", line 304, in fastavro._read.read_bytes
File "/usr/local/lib/python3.6/site-packages/apache_beam/io/filesystemio.py", line 113, in readinto
data = self._downloader.get_range(start, end)
File "/usr/local/lib/python3.6/site-packages/apache_beam/io/gcp/gcsio.py", line 522, in get_range
self._downloader.GetRange(start, end - 1)
File "/usr/local/lib/python3.6/site-packages/apitools/base/py/transfer.py", line 486, in GetRange
response = self.__ProcessResponse(response)
File "/usr/local/lib/python3.6/site-packages/apitools/base/py/transfer.py", line 424, in __ProcessResponse
raise exceptions.HttpError.FromResponse(response)
apitools.base.py.exceptions.HttpNotFoundError: HttpError accessing <https://www.googleapis.com/storage/v1/b/xxx/o/beam%2Ftemp%2Fstackoverflow-raphael-191119-084402.1574153042.687677%2F11710707918635668555%2F000000000009.avro?alt=media&generation=1574154204169350>: response: <{'x-guploader-uploadid': 'AEnB2UpgIuanY0AawrT7fRC_VW3aRfWSdrrTwT_TqQx1fPAAAUohVoL-8Z8Zw_aYUQcSMNqKIh5R2TulvgHHsoxLWo2gl6wUEA', 'content-type': 'text/html; charset=UTF-8', 'date': 'Tue, 19 Nov 2019 15:28:07 GMT', 'vary': 'Origin, X-Origin', 'expires': 'Tue, 19 Nov 2019 15:28:07 GMT', 'cache-control': 'private, max-age=0', 'content-length': '142', 'server': 'UploadServer', 'status': '404'}>, content <No such object: nlp-text-classification/beam/temp/stackoverflow-xxxx-191119-084402.1574153042.687677/11710707918635668555/000000000009.avro>
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/batchworker.py", line 649, in do_work
work_executor.execute()
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/executor.py", line 176, in execute
op.start()
File "dataflow_worker/native_operations.py", line 38, in dataflow_worker.native_operations.NativeReadOperation.start
File "dataflow_worker/native_operations.py", line 39, in dataflow_worker.native_operations.NativeReadOperation.start
File "dataflow_worker/native_operations.py", line 44, in dataflow_worker.native_operations.NativeReadOperation.start
File "dataflow_worker/native_operations.py", line 48, in dataflow_worker.native_operations.NativeReadOperation.start
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/nativefileio.py", line 204, in __iter__
for record in self.read_next_block():
File "/usr/local/lib/python3.6/site-packages/dataflow_worker/nativeavroio.py", line 198, in read_next_block
fastavro_block = next(self._block_iterator)
File "fastavro/_read.pyx", line 738, in fastavro._read.file_reader.next
File "fastavro/_read.pyx", line 662, in _iter_avro_blocks
File "fastavro/_read.pyx", line 595, in fastavro._read.null_read_block
File "fastavro/_read.pyx", line 597, in fastavro._read.null_read_block
File "fastavro/_read.pyx", line 304, in fastavro._read.read_bytes
File "/usr/local/lib/python3.6/site-packages/apache_beam/io/filesystemio.py", line 113, in readinto
data = self._downloader.get_range(start, end)
File "/usr/local/lib/python3.6/site-packages/apache_beam/io/gcp/gcsio.py", line 522, in get_range
self._downloader.GetRange(start, end - 1)
File "/usr/local/lib/python3.6/site-packages/apitools/base/py/transfer.py", line 486, in GetRange
response = self.__ProcessResponse(response)
File "/usr/local/lib/python3.6/site-packages/apitools/base/py/transfer.py", line 424, in __ProcessResponse
raise exceptions.HttpError.FromResponse(response)
apitools.base.py.exceptions.HttpNotFoundError: HttpError accessing <https://www.googleapis.com/storage/v1/b/xxxx/o/beam%2Ftemp%2Fstackoverflow-raphael-191119-084402.1574153042.687677%2F11710707918635668555%2F000000000009.avro?alt=media&generation=1574154204169350>: response: <{'x-guploader-uploadid': 'AEnB2UpgIuanY0AawrT7fRC_VW3aRfWSdrrTwT_TqQx1fPAAAUohVoL-8Z8Zw_aYUQcSMNqKIh5R2TulvgHHsoxLWo2gl6wUEA', 'content-type': 'text/html; charset=UTF-8', 'date': 'Tue, 19 Nov 2019 15:28:07 GMT', 'vary': 'Origin, X-Origin', 'expires': 'Tue, 19 Nov 2019 15:28:07 GMT', 'cache-control': 'private, max-age=0', 'content-length': '142', 'server': 'UploadServer', 'status': '404'}>, content <No such object: nlp-text-classification/beam/temp/stackoverflow-xxxx-191119-084402.1574153042.687677/11710707918635668555/000000000009.avro>
timestamp
2019-11-19T15:28:07.770312309Z
logger
root:batchworker.py:do_work
severity
ERROR
worker
stackoverflow-xxxx-191-11190044-7wyy-harness-2k89
step
Read Posts from BigQuery
thread
73:140029564072960
工人似乎在 Cloud Storage 上找不到一些 avro 文件。这可能与消息“工作人员与服务失去联系”有关
如果我查看“错误”,我会看到很多这样的问题,因此工人本身似乎遇到了问题:
查看Stack Traces 并没有给出更多提示。
我的问题如下:
- 我们如何确定问题与工人有关?
- 可能是什么原因?记忆 ?磁盘?还是暂时性问题?
- 如果工人死亡,是否有恢复的选项?为什么全部工作停止是 3/98 工人死亡或迷路?有那个参数吗?
我们的设置:
- 每个 VM 50 GB 磁盘(我认为其余的都使用默认参数)
- DISKS_TOTAL_GB:6144
- 与 CPU 相关的其他配额,以拥有 100 名工作人员。其余都是默认的私有用户参数
【问题讨论】:
标签: python google-cloud-platform google-bigquery google-cloud-dataflow spacy