Python AppEngine MapReduce

#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, и это надежно выдает эту ошибку, и приведенное выше не исправляет ее.