【发布时间】:2013-12-19 18:01:01
【问题描述】:
我想在 mapreduce 作业完成/完成后执行自定义回调函数。
我为这个问题找到的唯一有用的参考是a somewhat outdated Google site 和一个相关的,但又看似过时的Stackoverflow question。
这两个来源都假设我使用 control.start_map 来启动 Mapreduce 作业,并依赖于 start_map 接受关键字参数 mapreduce_parameters 的事实,其中可以指定 done_callback 参数来指定 URL应该在完成时调用。但是,我使用了另一种方法(afaik 是最近的首选方法),其中自定义管道的 run 方法会生成 Mapreduce 管道:
yield mapreduce_pipeline.MapreducePipeline(
"word_count",
"main.word_count_map",
"main.word_count_reduce",
"mapreduce.input_readers.BlobstoreZipInputReader",
"mapreduce.output_writers.BlobstoreOutputWriter",
mapper_params={
"blob_key": blobkey,
},
reducer_params={
"mime_type": "text/plain",
},
shards=16)
MapreducePipeline 的签名不允许mapreduce_parameters 参数。我可以在源代码中看到对回调的引用的唯一地方是mapper_pipeline.MapperPipeline.run,但它似乎只在内部使用。
那么,有没有办法在其中获取回调参数?
如果没有,是否有人对在何处以及如何扩展库以提供此类功能有好的想法?
【问题讨论】:
标签: python google-app-engine mapreduce