小编Rvd*_*vdV的帖子

在Spark中,是有很多小worker好还是有几个大worker好?

Spark 集群由一个驱动程序组成,该驱动程序将任务分配给多个工作节点。每个工作线程可以承担与可用核心数量相等的任务数量。所以我认为任务完成的速度取决于可用核心总数。

考虑以下集群配置,以 AWS EC2 为例:

  • 2 个m5.4xlarge(16 个 vCPU/核心,64GB RAM)工作线程,总共 32 个核心/128GB RAM

或者

  • 8 个m5.xlarge(4 个 vCPU/核心,16GB RAM)工作线程,总共 32 个核心/128GB RAM

我使用这些实例作为示例;这与这些实例无关,而是与一般想法有关,即您可以使用不同的配置拥有相同数量的内核+ RAM。这两种集群配置的性能有什么区别吗?两者都具有相同的内核和 RAM 总量,以及相同的 RAM/内核比率。您会选择其中一项做什么工作,另一项又是什么?我自己对此有一些想法:

  • 具有 8 个较小实例的配置可能具有更高的总网络带宽,因为每个工作线程都有自己的连接
  • 具有 2 个较大实例的配置在洗牌时可能会更有效,因为更多核心可以共享工作线程上的内存,而不必在网络上洗牌,因此网络开销更低
  • 具有 8 个较小实例的配置具有更好的弹性,因为如果一个工作线程发生故障,则只有八分之一发生故障,而不是二分之一。

您同意以上说法吗?在总 RAM/内核数量相同的不同配置之间进行选择时,您还会考虑哪些其他因素?

distributed-computing apache-spark

5
推荐指数
0
解决办法
1203
查看次数

将 Julia 嵌套列表转换为多维数组

给定一个 Julia 列表列表:

\n
data = [[1,2],[4,5]]\n
Run Code Online (Sandbox Code Playgroud)\n

其中有 type Vector{Int64},我如何将其转换为 2D 数据类型(例如2\xc3\x972 Matrix{Int64}),以便我可以像这样索引它data[:,2]?我尝试过hcatvcat但无法得到我想要的结果。提前致谢!

\n

julia

2
推荐指数
1
解决办法
717
查看次数