YARN vs 基于实时应用程序的 Spark 处理引擎?

YARN vs Spark processing engine based on real time application?

我了解 YARN 和 Spark。但是我想知道什么时候需要使用 Yarn 和 Spark 处理引擎。我可以识别 YARN 和 Spark 之间的区别的不同案例研究是什么?

你不能直接比较 Yarn 和 Spark 本身。 Yarn 是一个分布式容器管理器,例如 Mesos,而 Spark 是一个数据处理工具。 Spark 可以在 Yarn 上 运行,就像 Hadoop Map Reduce 可以在 Yarn 上 运行 一样。碰巧 Hadoop Map Reduce 是 Yarn 附带的功能,而 Spark 不是。

如果你的意思是比较 Map Reduce 和 Spark,我建议阅读 this other answer

Apache Spark 可以在 YARN、MESOS 或 StandAlone 模式下 运行。

独立模式下的 Spark - 这意味着所有资源管理和作业调度都由 Spark 内置。

Spark in YARN - YARN是MRV2引入的资源管理器,不仅支持原生hadoop,还支持Spark、Kafka、Elastic Search等自定义应用。

Mesos 中的 Spark - Spark 还支持 Mesos,这是另一种类型的资源管理器。

YARN 上 Spark 的优势

  • YARN 允许您在 YARN 运行 上的所有框架之间动态共享和集中配置相同的集群资源池。
  • YARN 调度程序可用于 spark 作业,只有使用 YARN,Spark 才能 运行 针对 Kerberized Hadoop 集群并在其进程之间使用安全身份验证。

Link for more documentation on YARN, Spark.

我们可以得出这样的结论,如果您想构建一个独立于所有内容的小型简单集群,请选择独立。如果您想使用现有的 hadoop 集群,请选择 YARN/Mesos.