Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Hadoop中,除了HDFS之外,其他文件系统如何利用数据局部性?_Hadoop_Amazon S3_Mapreduce_Hdfs - Fatal编程技术网

在Hadoop中,除了HDFS之外,其他文件系统如何利用数据局部性?

在Hadoop中,除了HDFS之外,其他文件系统如何利用数据局部性?,hadoop,amazon-s3,mapreduce,hdfs,Hadoop,Amazon S3,Mapreduce,Hdfs,我们知道Hadoop使用数据局部性原则生成map reduce作业以节省网络带宽。以下是对其工作原理的描述: 摘自: Hadoop尽最大努力在存储数据的节点上运行映射任务 本地显示以在网络和节点间进行优化 通信延迟。当输入数据被分成几部分并输入时 对于不同的映射任务,最好将所有数据都提供给 映射任务在单个节点上可用。因为HDFS只保证 大小等于其块大小(64M)的数据将显示在一个 节点,建议/提倡将拆分大小等于HDFS 块大小,以便映射任务可以利用此数据 本地化 Hadoop能够运行map re

我们知道Hadoop使用数据局部性原则生成map reduce作业以节省网络带宽。以下是对其工作原理的描述:

摘自:

Hadoop尽最大努力在存储数据的节点上运行映射任务 本地显示以在网络和节点间进行优化 通信延迟。当输入数据被分成几部分并输入时 对于不同的映射任务,最好将所有数据都提供给 映射任务在单个节点上可用。因为HDFS只保证 大小等于其块大小(64M)的数据将显示在一个 节点,建议/提倡将拆分大小等于HDFS 块大小,以便映射任务可以利用此数据 本地化


Hadoop能够运行map reduce作业,即使底层文件系统不是HDFS(即,它可以在其他文件系统上运行,如Amazon的S3)。现在,在这种情况下如何解释数据位置?在HDFS的情况下,namenode拥有所有的块位置信息,并使用这些信息生成尽可能接近数据的映射器。但是,在其他文件系统中,没有名称节点的概念。那么,Hadoop MapReduce框架(JobTracker和TaskTracker)如何学习数据的位置,以便在运行作业时应用数据局部性原则呢?

正如您所提到的,像S3这样的文件系统不需要名称nonde来运行。在这种情况下,数据局部性优化不可用

参考: