开发者社区 问答 正文

E-MapReduce多执行计划并行执行是什么?


为了最大化利用集群的可用计算资源,目前可以将多个执行计划挂载到同一个集群来达到多个执行计划并行执行的效果。
总结为如下几点:


  1. 同一个执行计划内的作业是串行执行的,默认认为前序作业执行完毕,后序作业才能被提交执行。

  2. 在集群资源足够的情况下,如果想要让多个作业达到并行执行的效果,需要创建多个不同的执行计划,同时关联到同一个集群提交运行即可(默认一个集群最多支持 20个执行计划同时执行)。

  3. 目前管控系统支持将关联到同一个集群的执行计划并行提交到 Yarn,但如果集群本身资源不足,还是可能阻塞在 Yarn队列中等待调度。

创建执行计划并关联到集群的流程参见: 执行计划创建流程

展开
收起
nicenelly 2017-10-30 14:29:19 1248 分享 版权
阿里云 AI 助理回答

您提到的策略是有效管理集群资源并提升作业执行效率的一种方法。在阿里云上,虽然直接操作YARN队列可能更多出现在使用E-MapReduce(EMR)或自建Hadoop/Spark集群的场景中,但您的描述同样可以映射到如何高效利用阿里云上的大数据处理服务,尤其是DataWorks和MaxCompute等产品。

阿里云产品视角下的解决方案:

  1. DataWorks:

    • 工作流(执行计划)设计:在DataWorks中,一个工作流(即您所说的执行计划)可以包含多个任务节点,这些任务默认串行执行。为了实现并行,您可以将相互独立的任务放入不同的工作流,然后这些工作流可以配置在同一计算资源组下,这类似于关联到同一个集群。
    • 资源组管理:资源组在DataWorks中扮演着类似“集群”的角色,它定义了任务运行时的资源限制和优先级。通过合理分配任务到不同的资源组,可以在资源组层面实现任务的并行执行,只要资源组内的总资源需求不超过实际可用资源。
    • 并行执行设置:对于不依赖前序任务的结果即可开始执行的任务,可以通过设置工作流的依赖关系或者使用跨工作流的依赖调度功能来实现更细粒度的并行控制。
  2. MaxCompute:

    • SQL作业与任务:MaxCompute本身支持大规模数据处理,并且其作业调度机制能够自动优化资源分配,使得多个作业在资源允许的情况下并行执行。尽管MaxCompute底层也使用YARN进行资源管理,用户通常不需要直接干预YARN队列。
    • 项目空间(Project)隔离:在MaxCompute中,每个项目空间相当于一个逻辑上的执行环境,不同项目空间之间天然隔离,可以根据需要为每个项目空间分配不同的计算资源,从而间接实现类似多执行计划的效果。

实践建议:

  • 评估资源需求:在创建执行计划或分配资源之前,准确评估每个任务的资源需求(CPU、内存等),避免因资源过度分配导致的资源浪费或因资源不足导致的排队等待。
  • 监控与调优:利用阿里云提供的监控工具(如CloudMonitor)监控集群资源使用情况,根据实际情况动态调整资源分配或作业优先级,以达到最佳的资源利用率和作业执行效率。
  • 弹性伸缩:考虑使用阿里云产品的弹性伸缩能力,比如MaxCompute的Auto Scale功能,根据负载自动增加或减少计算资源,确保即使在资源紧张时段也能高效执行任务。

综上所述,通过合理的规划和利用阿里云大数据服务的特性,可以有效地管理和优化集群资源,实现高效率的并行作业执行。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答