我只想澄清这句话“代码移动到数据附近进行计算”,
谢谢
发布于 2012-07-22 18:51:07
实际上,当要在大型集群上处理少量文件(确切地说是拆分文件)时,将jar发送到数据所在的少数主机的优化可能会在一定程度上减少作业延迟。我不知道是否有这样的优化计划。
发布于 2012-07-24 16:59:24
在hadoop集群中,您使用相同的节点进行数据和计算。这意味着您的hdfs datanode是在任务跟踪器用于计算的同一集群上设置的。因此,当您执行时,作业跟踪器会查看您的数据存储的位置。而在其他计算模型中,数据并不存储在同一个集群中,在某些计算节点上进行计算时,您可能不得不移动数据。
启动作业后,所有映射函数都将得到输入文件的分割。执行这些映射函数,以便使输入文件的拆分更接近它们,或者换句话说,在同一个机架中。这就是我们所说的计算更接近数据的意思。
因此,为了澄清您的问题,每次运行job时,都会将其代码复制到所有节点。因此,如果我们更改一个代码,一个新代码将被复制到所有节点。
https://stackoverflow.com/questions/11602699
复制相似问题