代码之家  ›  专栏  ›  技术社区  ›  Ged

Spark中与数据节点相关的“总执行器核心”参数

  •  0
  • Ged  · 技术社区  · 5 年前

    另一个我很少读到的项目。

    把S3放在一边,而不是现在的位置来尝试裸金属经典。 数据局部性 接近Spark、Hadoop,而不是动态资源分配模式,然后:

    • 如果HDFS中的一个大数据集分布在集群中的(全部)n个数据节点上,但总的执行器核心参数设置为低于n,并且我们需要读取明显(全部)n个相关数据节点上的所有数据,会怎么样?

    • 我假设spark必须忽略这个参数才能从hdfs中读取数据。或不是?

    • 如果忽略了它,则需要在该数据节点上分配一个执行器核心,从而由整个作业获取,因此需要将该参数解释为处理而不是读取块的意思?

    • 来自这样一个数据节点的数据是否立即转移到分配执行者的位置?

    事先谢谢。

    1 回复  |  直到 5 年前
        1
  •  1
  •   user10964773    5 年前

    这里似乎有点混乱。

    最佳数据位置(节点本地)是我们想要实现的,而不是保证。Spark所能做的就是请求资源(例如纱线- How YARN knows data locality in Apache spark in cluster mode )希望能得到满足数据局部性约束的资源。

    否则,它只会从远程节点获取数据。然而 它不是 洗牌。这只是一个简单的网络传输。

    所以为了回答你的问题,Spark将使用已经分配的资源,尽其所能满足约束条件。它不能使用尚未获取的节点,因此不会自动获取其他节点进行读取。