Только что закончил большую задачу Appengine mapreduce, и многие из моих осколков застряли в нескольких шагах от финишной черты. Вот настройка:
filenames = yield mapreduce_pipeline.MapperPipeline(
'example mapper name',
'main.MyMapper',
input_reader_spec='mapreduce.input_readers.DatastoreInputReader',
output_writer_spec='mapreduce.output_writers.FileOutputWriter',
params={
'input_reader':{
'entity_kind':'models.MyModel'
},
'output_writer':{
'filesystem':'gs',
'mime_type':'text/csv',
'gs_bucket_name':'myBucket',
'output_sharding':'input'
}
},
shards=DUMP_SHARDS
)
Я запускаю 3 из них параллельно, каждый с 16 осколками. Один маппер завершил работу без проблем, два других маппера добились успеха на 14 и 9 своих осколках.
Остальные осколки полностью заблокированы, возвращая UnknownError: ApplicationError: 7
. (Полная трассировка стека в конце этого поста.)
Обратите внимание, что картограф пытается выполнить запись в Google Cloud Storage. Ошибка возникает в битах, которые выполняют эту запись.
После некоторого поиска я нашел в google.appengine.runtime.apiproxy (который, по-видимому, является рассматриваемым прокси-сервером), эта ошибка 7 — OTHER_ERROR
.
Я повторял эти последние задачи (из очереди задач) уже около 3 часов, и с тех пор, как начались эти ошибки, ни одна из них не увенчалась успехом; что бы ни происходило, оно полностью застряло. Я также пытался остановить все экземпляры, на которых это работало, на случай, если это было какое-то странное локальное состояние, но там ничего не изменилось...
Вот полная трассировка стека:
I 2012-12-13 15:40:23.909
Processing done for shard 14 of job '1582444192075C233F6AA'
E 2012-12-13 15:40:23.969
ApplicationError: 7
Traceback (most recent call last):
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, e)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__
rv = self.router.dispatch(request, response)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
return route.handler_adapter(request, response)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__
return handler.dispatch()
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch
return self.handle_exception(e, self.app.debug)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
return method(*args, **kwargs)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/base_handler.py", line 65, in post
self.handle()
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/handlers.py", line 231, in handle
tstate.output_writer.finalize(ctx, shard_state.shard_number)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/output_writers.py", line 631, in finalize
files.finalize(self._filename)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/lib/files/file.py", line 568, in finalize
f.close(finalize=True)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/lib/files/file.py", line 291, in close
self._make_rpc_call_with_retry('Close', request, response)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/lib/files/file.py", line 427, in _make_rpc_call_with_retry
_make_call(method, request, response)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/lib/files/file.py", line 252, in _make_call
_raise_app_error(e)
File "/base/data/home/apps/myserver/myinstance.363844686987482417/mapreduce/lib/files/file.py", line 186, in _raise_app_error
raise UnknownError(e)
UnknownError: ApplicationError: 7