在最近关于分布式处理和流的讨论中,我遇到了“代码移动到数据”的概念。有人可以帮忙解释一下吗?此短语的引用是 MapReduceWay .
在 Hadoop 方面,it's stated in a question但仍然无法以技术不可知的方式找出对原理的解释。
最佳答案
基本思想很简单:如果代码和数据在不同的机器上,则必须先将其中一个移动到另一台机器上,然后才能在数据上执行代码。如果代码小于数据,最好将代码发送到保存数据的机器,而不是相反,如果所有机器都同样快且代码兼容。 [可以说您可以根据需要发送源代码和 JIT 编译]。
在大数据的世界里,代码几乎总是比数据小。
在许多 super 计算机上,数据跨多个节点分区,整个应用程序的所有代码都在所有节点上复制,正是因为与本地存储的数据相比,整个应用程序很小。然后任何节点都可以运行应用到它持有的数据的程序部分。无需按需发送代码。
关于hadoop - "code moving to data"而不是数据转码的原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40601991/