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

问题描述

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

我们的工作量

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

使用现有服务器的可能性

我们用于此处理工作负载的服务器通常单独使用。他们每个人都具有双V100,并在很大一部分工作量上执行(单节点,多GPU)GPU加速培训。他们操作裸机/没有vm。我们不想失去这种单独使用服务器的能力。

在寻找典型的火花要求时,它们还存在以下问题:(1)仅1GB以太网连接/它们之间的切换(2)将其SSD配置为巨型11TB RAID 10,我们可能不想更改文件的方式系统看起来像单独使用服务器时一样。

是否有一种软件解决方案可以将我们的服务器转变为集群并按需恢复,还是需要将所有内容重新格式化为一些基础的hadoop集群(或其他)?

购买新服务器的可能性

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

对于计算节点

  • 我们如何选择节点数
  • CPU / RAM /存储空间?
  • 节点之间的联网(我们的DC提供了1GB的交换机,但我们可以购买定制的交换机)?
  • 其他考虑因素?

对于存储节点

  • 它们与计算节点相同吗?
  • 如果没有,我们如何选择合适的(我们的原始数据集实际上很小,
  • 我们将NAS广泛用作服务器之间的共享存储,是否需要特别考虑如何与集群一起使用?

我还想了解如何在不增加生存能力的前提下扩大/缩小这些数字。这样,我可以获得一系列报价=>生成2021年的预算提案=>购买服务器〜Q1。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...