首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop --“代码在数据附近移动以进行计算”

Hadoop --“代码在数据附近移动以进行计算”
EN

Stack Overflow用户
提问于 2012-07-22 18:04:21
回答 2查看 2.6K关注 0票数 1

我只想澄清这句话“代码移动到数据附近进行计算”,

  1. 这是否意味着开发人员编写的所有java MR都部署到集群中的所有服务器上?
  2. 如果1是真的,如果有人改变了一个MR程序,它是如何分发给所有服务器的?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-07-22 18:51:07

  1. Hadoop将约伯的jar放入HDFS --它的分布式文件系统。需要它的任务跟踪器将从那里带走它。因此,它分布到一些节点,然后按需加载到实际需要它们的节点上。通常,这意味着节点将处理本地数据。

  1. 相比于作业,Hadoop集群是“无状态的”。每次作业都被视为新的东西,并且不使用前一个作业的“副作用”。

实际上,当要在大型集群上处理少量文件(确切地说是拆分文件)时,将jar发送到数据所在的少数主机的优化可能会在一定程度上减少作业延迟。我不知道是否有这样的优化计划。

票数 3
EN

Stack Overflow用户

发布于 2012-07-24 16:59:24

在hadoop集群中,您使用相同的节点进行数据和计算。这意味着您的hdfs datanode是在任务跟踪器用于计算的同一集群上设置的。因此,当您执行时,作业跟踪器会查看您的数据存储的位置。而在其他计算模型中,数据并不存储在同一个集群中,在某些计算节点上进行计算时,您可能不得不移动数据。

启动作业后,所有映射函数都将得到输入文件的分割。执行这些映射函数,以便使输入文件的拆分更接近它们,或者换句话说,在同一个机架中。这就是我们所说的计算更接近数据的意思。

因此,为了澄清您的问题,每次运行job时,都会将其代码复制到所有节点。因此,如果我们更改一个代码,一个新代码将被复制到所有节点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11602699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档