我试图按计划在Bluemix上运行我的Spark应用程序。现在我在我的机器上本地使用spark-submit.sh脚本的调度。但是我想将Bluemix用于此目的。有没有办法在Bluemix基础架构中直接设置调度以运行Spark笔记本或Spark应用程序?
答案 0 :(得分:3)
Bluemix OpenWhisk产品提供了一种简单的方法来安排与cron作业类似的定期计划运行的操作。
OpenWhisk提供基于操作,触发器和规则的编程模型。对于这个用例,你会
如果您的操作很容易从javascript函数启动,则可以使用javascript编码。如果没有,并且您希望通过shell脚本实施您的操作,则可以使用whisk docker actions将shell脚本作为操作进行管理。
This page in the whisk docs包含有关如何完成此操作的详细说明。简言之:
/whisk.system/alarms/alarm feed将Alarm服务配置为以指定频率触发触发事件。参数如下:
cron: A string, based on the Unix crontab syntax, that indicates when to fire the trigger in Coordinated Universal Time (UTC). The string is a sequence of six fields separated by spaces: X X X X X X. For more details on using cron syntax, see: https://github.com/ncb000gt/node-cron. Here are some examples of the frequency indicated by the string:
* * * * * *: every second.
0 * * * * *: top of every minute.
* 0 * * * *: top of every hour.
0 0 9 8 * *: at 9:00:00AM (UTC) on the eighth day of every month
trigger_payload: The value of this parameter becomes the content of the trigger every time the trigger is fired.
maxTriggers: Stop firing triggers when this limit is reached. Defaults to 1000.
以下是创建触发器的示例,该触发器将每20秒触发一次,并在触发器事件中使用名称和位置值。
$ wsk trigger create periodic --feed /whisk.system/alarms/alarm --param cron '*/20 * * * * *' --param trigger_payload '{"name":"Odin","place":"Asgard"}'
每个生成的事件都将包含trigger_payload值中指定的属性作为参数。在这种情况下,每个触发事件都将具有参数name = Odin和place = Asgard。