我需要为生产环境设置一个独立模式的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论坛和官方文档中搜索。
1条答案
按热度按时间rn0zuynd1#
Master通常不需要太多的计算,它只跟踪worker的运行状况,如果你没有使用任何类似collect的操作,那么driver也是类似的情况。如果你的spark应用是按照spark模式编码的,你鼓励并行化,那么主要的繁重工作是由worker和executors完成的。如果是批处理作业,那么从一个单核的master和一个单核的driver开始,如果是流处理作业,那么最多是两个核的driver。