hadoop - "code moving to data"而不是数据转码的原理是什么?

标签 hadoop architecture mapreduce distributed-computing design-principles

在最近关于分布式处理和流的讨论中,我遇到了“代码移动到数据”的概念。有人可以帮忙解释一下吗?此短语的引用是 MapReduceWay .

在 Hadoop 方面,it's stated in a question但仍然无法以技术不可知的方式找出对原理的解释。

最佳答案

基本思想很简单:如果代码和数据在不同的机器上,则必须先将其中一个移动到另一台机器上,然后才能在数据上执行代码。如果代码小于数据,最好将代码发送到保存数据的机器,而不是相反,如果所有机器都同样快且代码兼容。 [可以说您可以根据需要发送源代码和 JIT 编译]。

在大数据的世界里,代码几乎总是比数据小。

在许多 super 计算机上,数据跨多个节点分区,整个应用程序的所有代码都在所有节点上复制,正是因为与本地存储的数据相比,整个应用程序很小。然后任何节点都可以运行应用到它持有的数据的程序部分。无需按需发送代码。

关于hadoop - "code moving to data"而不是数据转码的原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40601991/

相关文章:

hadoop - 在Oozie Workflow中使用HBase表快照

python - 如何将 RDD 保存到单个 Parquet 文件?

hadoop - 通过 Camel 将文件复制到HDFS2不起作用

r - 在 R 中运行 map reduce 作业时出错

hadoop - 在 hadoop 多节点集群设置中创建从作业日志到 ${hadoop.tmp.dir} 的符号链接(symbolic link)失败

java - 在 Spring Controller 中同时执行两种方法时只有一次数据获取的最佳方法

Python - 在 __init__() 之外定义的实例属性

architecture - DCI体系结构的示例?

java - Spark聚合方法中的并发

java - Hadoop Map Reduce - 将 Iterable<Text> 值写入上下文时,reduce 中的嵌套循环忽略文本结果