Spark原则是"将代码发送到数据"。这是什么意思?

时间:2017-03-15 00:54:21

标签: apache-spark

Spark原则是"将代码发送到数据"。这是什么意思?为什么这比将数据发送到代码"更好更高效?在Spark?

2 个答案:

答案 0 :(得分:2)

通常Spark处理大量数据并对其进行CPU密集型操作,例如转型或机器学习。它需要将数据保存在内存中。单台机器上的内存有限。因此Spark在多个节点中加载数据,并将算法发送到要在数据上执行的那些机器上 此外,Spark也在使用“' n”的CPU。节点而不仅仅是一个节点 我们通常将这些数据组织为密钥。例如。我们需要计算大量客户的账户数据。这些可以在单独的节点上并行计算。所以有很大的性能提升 一旦在节点上完成所有计算,就可以在您的机器上收集每个节点的最终解决方案,或者更好,如果它很大,则写入NAS或HDFS上的输出文件。 请参阅enter image description here以了解相关信息。

答案 1 :(得分:1)

如果将数据发送到代码,则边缘节点为

  1. 阅读所有数据
  2. 处理/过滤所有数据
  3. 将结果写在某处
  4. 另一种方法是边缘节点将代码发送到数据

    1. 将代码写入数据节点
    2. 等待数据节点执行处理/过滤
    3. 等待确认数据已成功写入
    4. 比例更好的原因很简单,更多数据节点比边缘节点 locality 数据意味着更好的性能。