我有一个在独立模式下运行的Spark集群。我目前正在执行使用 Jupyter 笔记本调用 pyspark 的代码。假设机器没有执行任何其他操作,使用 YARN 作为集群管理器是否有好处?
使用 YARN 会获得更好的性能吗?如果是这样,为什么?
非常感谢,
John
我会通过考虑这些要点说是的。
为什么要在 YARN 上运行?
使用YARN作为Spark的集群管理器比Spark独立具有一些优势:
- 您可以利用 YARN 调度程序的所有功能对工作负载进行分类、隔离和优先级排序。
- 无论如何,Spark 独立模式也需要 worker 进行无法运行非 Spark 应用程序的从属活动,而与 YARN 一样,这是隔离在容器中的,因此采用另一个计算框架应该是代码更改而不是基础设施 + 代码。因此,集群可以在不同的框架之间共享。
- YARN 是唯一支持安全性的 Spark 集群管理器。跟YARN,Spark可以针对Kerberized Hadoop集群运行并使用其进程之间的安全身份验证。
- YARN 允许您动态共享和集中配置相同的在 YARN 上运行的所有框架之间的群集资源池。你可以把整个集群扔到一个MapReduce作业上,然后使用一些在 Impala 查询上,其余的在 Spark 应用程序上,没有配置中的任何更改。
我会说 1、2 和 3 适用于上述场景,但不适用于第 4 点,因为我们假设没有其他框架会使用该集群。
索斯