Zookeeper 让master和worker在一个小型Spark集群中的同一个节点上运行对于HA来说是个好主意吗?

vjrehmav  于 7个月前  发布在  Apache
关注(0)|答案(1)|浏览(98)

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

  • 128GB RAM
  • 24个CPU核心

对于像我需要配置的小型集群,没有示例文档可用。间接地,我推断建议为工作节点和主节点使用单独的服务器,但我不确定是否真的如此。
在没有明确方向的情况下,我想到了这两个选择:

第一个选项:

  • 节点1 ->主机和驱动程序
  • 节点2 -> Worker
  • 节点3 -> Worker

优点:

  • 易于实现。我会使用FILESYSTEM恢复来实现高可用性。
  • 由每个主进程和工作进程启动的进程将被隔离。

缺点:

  • 如果主节点的硬件损坏,恢复将需要很长时间。需要配置新服务器或修复现有服务器。
  • 我会浪费主节点的资源。

第二个选项:

  • 节点1 -> Master和Worker
  • 节点2 -> Master和Worker
  • 节点3 -> Master和Worker

优点:

  • 安装有点复杂。我会使用ZooKeeper来获得高可用性。
  • 恢复将是立即的。根据文档,它需要1到2分钟。

缺点:

  • 主进程和工作进程启动在同一台服务器上。我不确定这是否是一个问题。

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

rn0zuynd

rn0zuynd1#

Master通常不需要太多的计算,它只跟踪worker的运行状况,如果你没有使用任何类似collect的操作,那么driver也是类似的情况。如果你的spark应用是按照spark模式编码的,你鼓励并行化,那么主要的繁重工作是由worker和executors完成的。如果是批处理作业,那么从一个单核的master和一个单核的driver开始,如果是流处理作业,那么最多是两个核的driver。

相关问题