在小型 Spark 集群中的同一个节点上运行 Master 和 Worker 来实现 HA 是一个好主意吗?

问题描述 投票:0回答:1

我需要为生产环境设置一个独立模式的 Apache Spark 集群。对于此任务,我只有三个可用节点。每个节点有:

  • 128GB 内存
  • 24个CPU核心

没有适用于像我需要配置的小型集群的示例文档。间接地,我推断建议为工作节点和主节点设置单独的服务器,但我不确定是否确实如此。

在没有明确方向的情况下,我想到了这两个选择:

第一个选项:

  • 节点 1 -> 主控和驱动器
  • 节点 2 -> Worker
  • 节点 3 -> Worker
优点:
  • 实施简单。我会使用文件系统恢复来实现高可用性。
  • 每个master和worker发起的进程都是隔离的。
缺点:
  • 如果主节点硬件损坏,恢复时间较长。需要配置一台新服务器或修复现有服务器。
  • 我会浪费主节点的资源。

第二个选项:

  • 节点 1 -> Master 和 Worker
  • 节点 2 -> Master 和 Worker
  • 节点 3 -> Master 和 Worker
优点:
  • 安装有点复杂。我会使用 ZooKeeper 来实现高可用性。
  • 恢复将立即进行。根据文档,需要 1 到 2 分钟。
缺点:
  • master和worker发起的进程在同一台服务器上。我不太确定这是否是一个问题。

我尝试在Spark论坛和官方文档中搜索。

apache-spark apache-zookeeper distributed-computing
1个回答
0
投票

Master 通常不需要太多计算,它只跟踪工人的健康状况,如果您不使用收集等任何操作,则驾驶员的情况类似。如果您的 Spark 应用程序是按照鼓励并行性的 Spark 模式进行编码的,那么主要的繁重工作将由工作人员和执行人员完成。 如果是批处理作业,则从 1 核主控和 1 核驱动程序开始;如果是流处理作业,则最多使用 2 核驱动程序。

© www.soinside.com 2019 - 2024. All rights reserved.