独立管理器与。纱线比。金币

Standalone Manager Vs. Yarn Vs. Mesos

在 3 节点 Spark/Hadoop 集群上,哪个调度程序(管理器)可以高效工作? 目前我正在使用独立管理器,但对于每个 spark 作业,我必须明确指定所有资源参数(例如:核心、内存等),这是我想避免的。 我也尝试过 Yarn,但它 运行 比独立管理器慢 10 倍。

Mesos 会有帮助吗?

集群详细信息: 火花 1.2.1 和 Hadoop 2.7.1

在 3 节点集群上,我只使用独立管理器,额外进程的开销不会得到回报

Apache Spark 运行在以下集群模式下

  • 本地
  • 独立
  • 纱线
  • 金币
  • Kubernetes
  • 游牧民族

本地模式用于运行操作系统上的Spark应用程序。这种模式对于Spark应用的开发和测试很有用。

standalone、Yarn、Mesos、Kubernetes等模式都是分布式环境。在分布式环境中,资源管理对于计算资源的管理非常重要。因此,要有效地管理计算资源,我们需要好的资源管理系统或Resource Schedular。

Standalone适用于小型spark集群,但不适用于更大的集群(有运行ning spark daemons(master + slave)的开销在集群节点中)。这些守护进程需要专用资源。因此,不建议将 standalone 用于更大的生产集群。 Standalone 仅支持 Spark 应用程序,它不是通用集群管理器。在我们有各种工作负载的企业环境中 运行,spark 独立集群管理器不是一个好的选择。

YARN 和 Mesos 模式 的情况下,Spark 运行s 作为一个应用程序并且没有守护进程开销。因此,我们可以使用 YARN 或 Mesos 来获得更好的性能和可扩展性。 YARN 和 Mesos 都是通用的分布式资源管理,它们支持各种工作负载,如 MapReduce、Spark、Flink、Storm 等...以及容器编排。它们适用于 运行 大规模企业生产集群。

介于 YARN 和 Mesos 之间,YARN 专为 Hadoop 工作负载而设计,而 Mesos 则专为各种工作负载而设计。 YARN 是应用程序级调度器,Mesos 是 OS 级调度器。 如果您已经 运行ning Hadoop 集群 (Apache/CDH/HDP),最好使用 YARN。如果是全新项目,最好使用 Mesos(Apache、Mesosphere)。还有一项规定可以使用名为 Apache Myriad 的项目以共置方式使用它们。

Kubernetes - 用于自动部署、扩展和管理容器化应用程序的开源系统。因此它以容器化的方式用于 运行ning Spark 应用程序。大多数云供应商,如 Google、Microsoft、Amazon 都将 Kubernetes 平台作为云端服务提供。我们还可以将 on-prim K8S 集群以容器化的方式用于 运行 Spark 应用程序。这里的容器是 Docker 或 CGroups/Linux 容器。

Nomad - 这是另一个用于 运行ning Spark 应用程序的开源系统。 Spark项目官方不支持此集群管理器作为集群管理器。

Out of all above modes, Apache Mesos has better resource management capabilities.

请看这个link,它包含来自专家的关于 Yarn vs Mesos 的详细解释。 http://www.quora.com/How-does-YARN-compare-to-Mesos

Spark 3.x.x 有几种集群管理器模式:

  • Standalone – 一个简单的集群管理器,包含在 Spark 中,使 很容易建立一个集群。
  • A​​pache Mesos – 通用集群管理器,还可以 运行 Hadoop MapReduce 和服务应用程序。
  • Hadoop YARN – Hadoop 2 中的资源管理器。
  • Kubernetes – 开源 用于自动化部署、扩展和管理的系统 容器化应用程序。

更多关于 https://spark.apache.org/docs/latest/cluster-overview.html#cluster-manager-types