Amazon EMR

综述

Amazon EMR任务类型,用于在AWS上创建EMR集群并执行计算任务。 后台使用aws-java-sdk 将json参数转换为RunJobFlowRequest 对象,提交到AWS

任务参数

  • 节点名称:一个工作流定义中的节点名称是唯一的。
  • 运行标志:标识这个节点是否能正常调度,如果不需要执行,可以打开禁止执行开关。
  • 描述信息:描述该节点的功能。
  • 任务优先级:worker线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。
  • Worker分组:任务分配给worker组的机器机执行,选择Default,会随机选择一台worker机执行。
  • 失败重试次数:任务失败重新提交的次数,支持下拉和手填。
  • 失败重试间隔:任务失败重新提交任务的时间间隔,支持下拉和手填。
  • 超时告警:勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败.
  • json: RunJobFlowRequest 对象对应的json,详细json定义参见 API_RunJobFlow_Examples

json参数样例

  1. {
  2. "Name": "SparkPi",
  3. "ReleaseLabel": "emr-5.34.0",
  4. "Applications": [
  5. {
  6. "Name": "Spark"
  7. }
  8. ],
  9. "Instances": {
  10. "InstanceGroups": [
  11. {
  12. "Name": "Primary node",
  13. "InstanceRole": "MASTER",
  14. "InstanceType": "m4.xlarge",
  15. "InstanceCount": 1
  16. }
  17. ],
  18. "KeepJobFlowAliveWhenNoSteps": false,
  19. "TerminationProtected": false
  20. },
  21. "Steps": [
  22. {
  23. "Name": "calculate_pi",
  24. "ActionOnFailure": "CONTINUE",
  25. "HadoopJarStep": {
  26. "Jar": "command-runner.jar",
  27. "Args": [
  28. "/usr/lib/spark/bin/run-example",
  29. "SparkPi",
  30. "15"
  31. ]
  32. }
  33. }
  34. ],
  35. "JobFlowRole": "EMR_EC2_DefaultRole",
  36. "ServiceRole": "EMR_DefaultRole"
  37. }