0

我创建了一个非常简单的MapReduce管道,但我有一个神秘的:Python的AppEngine上的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没有做任何事情,因为我是聚焦有管道开始,这是不会发生的帐户。

它全部由烧瓶视图触发,执行以下操作:

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) 

我使用​​

感谢您的帮助。

UPDATE

在上面的代码工作一旦部署。

更新2

显然有更多的人处理这个:

https://github.com/GoogleCloudPlatform/appengine-mapreduce/issues/103

回答

0

我更新这个。我有一个使用管道的代码库,在OSX中工作正常。我不得不使用OSX另一家开发商,根本没有我这样做似乎得到它的工作,他得到这样的:

从ProtoRPC的方法执行过程中遇到意外的错误:PipelineSetupError

我已经试过周围交换版本和使我们的个人电脑完美匹配,并继续发生。我终于打破了并在docker中构建了一个Ubuntu镜像。我也尽我最大努力使我们的AppEngine和库版本完美匹配。

它也拒绝以相同的消息开始。我开始通过图书馆的工作来取消注释吞咽错误的部分,但那是一个长长的兔子洞,我开始时因为上面有很多东西似乎也在吞噬任何正在发生的事情。

+0

有趣。你可以在这里粘贴下面的结果: '哪个dev_appserver.py'? 会很有用。 –

+0

另外,这对我不起作用。 –

+0

它只适用于那台机器。我的osx框工作正常。出于绝望,我在Ubuntu上创建了一个Docker镜像库,并且可靠地抛出了这个错误,而上面的错误并没有解决它。 – user3542985