【问题标题】:How to start mapreduce job from cron on GAE Python如何在 GAE Python 上从 cron 启动 mapreduce 作业
【发布时间】:2011-06-04 03:31:23
【问题描述】:

我在 mapreduce.yaml 中定义了 mapreduce 作业:

mapreduce:
- name: JobName 
  mapper:
    input_reader: google.appengine.ext.mapreduce.input_readers.DatastoreInputReader
    handler: handler_name
    params:
    - name: entity_kind
      default: KindName

如何从 cron 启动它?有没有可以运行的url?

【问题讨论】:

    标签: python google-app-engine cron mapreduce


    【解决方案1】:

    您可以使用 control.py 从任何类型的 AppEngine 处理程序启动 mapreduce 任务

    from mapreduce import control
    
    mapreduce_id = control.start_map(
        "My Mapper",
        "main.my_mapper",
        "mapreduce.input_readers.DatastoreInputReader",
        {"entity_kind": "models.MyEntity"},
        shard_count=10)
    

    【讨论】:

    • 我注意到文件中有一条评论说start_map 已被弃用,而是使用map_job.start;此评论可能是在给出此答案后添加的。
    【解决方案2】:

    是的,如果您查看Getting Started 页面,则表明您在app.yaml 中设置了URL:

    handlers:
    - url: /mapreduce(/.*)?
      script: mapreduce/main.py
      login: admin
    

    然后,您可以使用通常的 App Engine 方式对其进行 cron 执行,在本例中,它会像这样编写 cron.yaml

    cron:
    - description: daily summary job
      url: /mapreduce
      schedule: every 24 hours
    

    【讨论】:

    • 这将创建一个每天一次获取 mapreduce 管理页面的 cron 作业。它不会执行任何 mapreduce。
    猜你喜欢
    • 2014-02-03
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    相关资源
    最近更新 更多