【问题标题】:How can I configure yarn cluster for parallel execution of Applications?如何配置纱线集群以并行执行应用程序?
【发布时间】:2019-02-06 13:18:34
【问题描述】:

当我在纱线集群上运行火花作业时,应用程序正在队列中运行。那么我怎样才能并行运行多个应用程序呢?

【问题讨论】:

  • 你已经尝试了什么?对于帮助您的用户,最好提供您的代码或应用程序失败的具体示例。你能提供一些更详细的信息吗?
  • 感谢您的回复,通常当我向纱线集群提交 spark 或 mapreduce 程序时,应用程序运行良好,没有错误。但是应用程序是连续运行的,这意味着一个接一个。我想同时运行应用程序,另外我还需要做什么配置?

标签: bigdata cluster-computing admin hadoop-yarn hadoop2


【解决方案1】:

默认情况下,Spark 会在启动作业时获取所有可用资源。

您可以通过 spark-submit 命令限制每个作业消耗的资源量。

将选项“--conf spark.cores.max=1”添加到 spark-submit。您可以更改内核数量以适应您的环境。例如,如果您总共有 100 个核心,您可能会将单个作业限制为 25 个核心或 5 个核心等。

您还可以限制消耗的内存量:--conf spark.executor.memory=4g

您可以通过 spark-submit 或在文件 conf/spark-defaults.conf 中更改设置。这是一个文档链接:

Spark Configuration

【讨论】:

  • 这意味着问题是关于顺序调度的假设。另外,YARN Dynamc 资源分配呢? @约翰汉利
  • @thebluephantom - 如果您有更好的答案,请加入并发布。
  • 我怀疑你知道得更好,所以只是补充。
  • 嗨约翰,我有 2 台机器,每台机器有 32gb 内存和 8 核,所以你能帮我如何使用 spark 设置配置纱线以及如何调整资源。我正在使用 zeppelin 接口将 Spark 作业提交到集群。
  • @vikramreddy。创建一个包含更多详细信息的新问题。如果可以的话,我很乐意提供帮助。
【解决方案2】:

我想您的 YARN 调度程序选项设置为 FIFO。请将其更改为 FAIR 或容量调度程序。公平调度程序尝试分配资源,以便所有正在运行的应用程序获得相同的资源份额。

Capacity Scheduler 允许共享 Hadoop 集群 组织线,其中每个组织都被分配了一定的 整个集群的容量。每个组织都设立了一个 配置为使用给定部分的专用队列 集群容量。队列可以进一步划分为层次结构 时尚,允许每个组织共享其集群津贴 在组织内的不同用户组之间。在一个 队列,应用程序使用 FIFO 调度进行调度。

如果您使用的是容量调度程序,那么 在 spark 提交中提及您的队列 --queue queueName

请尝试更改此容量调度程序属性

yarn.scheduler.capacity.maximum-applications = 任意数量

它将决定有多少应用程序将并行运行

【讨论】:

  • 通过 Yarn 动态分配资源?洗牌和执行者放弃的问题太多?
  • @thebluephantom 没有得到你提到的问题。能否请您详细说明
猜你喜欢
  • 1970-01-01
  • 2019-11-11
  • 2018-10-29
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-20
相关资源
最近更新 更多