如何确定 Spark 集群的基础设施需求

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

我正在寻找一些有关如何调整 Spark 集群服务器大小的建议或资源。我们的企业要求迫使我们只能使用本地服务器,因此我无法在公共云上尝试该任务(即使我使用假数据进行 PoC,我仍然需要稍后购买物理硬件)。该组织也没有我可以使用的共享分布式计算环境/我无法获得有关购买内容的良好内部指导。在与试图向我追加销售的供应商交谈之前,我想先了解一下我们需要什么。

我们的工作量

我们目前有一个非常并行的数据准备任务。我们在一组具有 40 个 skylake 核心/80 个线程和约 500GB RAM 的服务器上用 python/pandas/sklearn + 多处理包实现它。通过在 3 台服务器上手动运行此任务(每台服务器处理数据集的单独部分),我们能够在大约 5 天内完成该任务。这些任务受 CPU 限制(所有线程 100% 利用率),并且通常内存使用率较低(在 100-200 GB 范围内)。一切都可以扩展到几千个并行进程,并且某些子任务甚至可以并行化。单个数据块的大小在 10-60GB 范围内(不同的键可以具有非常不同的大小,单个数据块有多个可以并行执行的操作)。所有这些并行性目前都是手动的,显然应该使用真正的分布式方法来完成。 理想情况下,我们希望在 12 小时内完成这项任务。

使用现有服务器的潜力

我们用于此处理工作负载的服务器通常是单独使用的。他们各自拥有双 V100,并针对大部分工作负载进行(单节点、多 GPU)GPU 加速训练。它们是裸机/无虚拟机运行的。我们不想失去这种单独使用服务器的能力。

寻找典型的 Spark 要求,他们还存在以下问题:(1) 它们之间只有 1GB 以太网连接/交换机 (2) 他们的 SSD 配置为巨大的 11TB RAID 10,我们可能不想更改文件系统的外观就像单独使用服务器时一样。

是否有一种软件解决方案可以将我们的服务器转换为集群并按需返回,或者我们是否需要将所有内容重新格式化为某些底层 hadoop 集群(或其他东西)?

购买新服务器的潜力

以12小时内完成工作量为目标,我们如何选择正确的节点数量/节点大小?

对于计算节点

  • 我们如何选择节点数量
  • CPU/RAM/存储?
  • 节点之间的网络(我们的 DC 提供 1GB 交换机,但我们可以购买定制)?
  • 其他注意事项?

对于存储节点

  • 它们和计算节点一样吗?
  • 如果不是,我们如何选择合适的(我们的原始数据集实际上很小,<1TB)
  • 我们广泛使用NAS作为服务器之间的共享存储,是否需要特别考虑如何与集群配合使用?

我还想了解如何扩大/缩小这些数字,同时仍然能够有效地完成并行处理工作负载。这样我可以获得一系列报价 => 生成 2021 年预算提案 => 购买服务器 ~Q1。

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

我猜没有人知道答案...

我想知道,你是如何应对这个挑战的?

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