#python #google-app-engine #mapreduce #google-app-engine-python
# #python #google-app-engine #mapreduce #google-app-engine-python
Вопрос:
я создал довольно простой конвейер MapReduce, но у меня возникает загадочный:
PipelineSetupError: Error starting production.cron.pipelines.ItemsInfoPipeline(*(), **{})#a741186284ed4fb8a4cd06e38921beff:
когда я пытаюсь его запустить. Это конвейерный код:
class ItemsInfoPipeline(base_handler.PipelineBase):
"""
"""
def run(self):
output = yield mapreduce_pipeline.MapreducePipeline(
job_name="items_job",
mapper_spec="production.cron.mappers.items_info_mapper",
input_reader_spec="mapreduce.input_readers.DatastoreInputReader",
mapper_params={
"input_reader": {
"entity_kind": "production.models.Transaction"
}
}
)
yield ItemsInfoStorePipeline(output)
class ItemsInfoStorePipeline(base_handler.PipelineBase):
"""
"""
def run(self, statistics):
print statistics
return "OK"
Конечно, я дважды проверил, что путь картографа правильный, и принял во внимание, что ItemsInfoStorePipeline ничего не делает, потому что я фокусируюсь на запуске конвейера, чего не происходит.
Все это запускается с помощью представления Flask, следующего:
class ItemsInfoMRJob(views.MethodView):
"""
It's based on transacions.
"""
def get(self):
"""
:return:
"""
pipeline = ItemsInfoPipeline()
pipeline.start()
redirect_url = "%s/status?root=%s" % (pipeline.base_path, pipeline.pipeline_id)
return flask.redirect(redirect_url)
Я использую GoogleAppEngineMapReduce==1.9.22.0
Спасибо за любую помощь.
Обновить
Приведенный выше код работает после развертывания.
ОБНОВЛЕНИЕ 2
По-видимому, больше людей занимаются этим:
https://github.com/GoogleCloudPlatform/appengine-mapreduce/issues/103
Ответ №1:
Я обновляю это. У меня есть база кода, которая использует конвейеры и отлично работает в OSX. У меня был другой разработчик, использующий OSX, который просто ничего не делает, чтобы заставить его работать, он получает это:
Обнаружена неожиданная ошибка при реализации метода ProtoRPC: PipelineSetupError
Я пытался менять версии и сделать так, чтобы наши ПК идеально соответствовали друг другу, и это продолжает происходить. Я, наконец, не выдержал и создал образ Ubuntu в docker. Я также делаю все возможное, чтобы наши версии AppEngine и библиотек идеально соответствовали друг другу.
Он также отказывается запускаться с тем же сообщением. Я начал работать с библиотеками, раскомментировав ту часть, которая проглатывает ошибку, но это была длинная кроличья нора, с которой я начал, потому что многие вещи над ней также, кажется, поглощают все, что происходит.
Комментарии:
1. Интересно. Можете ли вы вставить сюда результат следующего:
which dev_appserver.py
? Было бы действительно полезно.2. Он работал только на этой одной машине. Мой ящик osx работает нормально. В отчаянии я создал базу изображений docker в Ubuntu, и это надежно выдает эту ошибку, и приведенное выше не исправляет ее.