Abh*_*ain 6 hadoop mapreduce amazon-s3 hdfs
我们知道Hadoop使用数据局部性原则来生成map-reduce作业以节省网络带宽.以下是对其工作原理的说明:
摘自:http://hadoop-gyan.blogspot.in/
Hadoop尽力在本地存在数据的节点上运行映射任务,以优化网络和节点间通信延迟.由于输入数据被分成多个部分并馈送到不同的映射任务,因此希望在单个节点上将所有馈送到该映射任务的数据都可用.因为HDFS仅保证大小等于其块大小(64M)的数据.在一个节点上,建议/提倡将分割大小等于HDFS块大小,以便map任务可以利用此数据本地化.
即使底层文件系统不是HDFS,Hadoop也能够运行map-reduce作业(即,它可以在其他文件系统上运行,例如Amazon S3).现在,在这种情况下如何计算数据位置?在HDFS的情况下,namenode具有所有块位置信息,并使用该映射器尽可能接近数据生成.但是,在其他文件系统中,没有namenode的概念.然后,Hadoop MapReduce框架(JobTracker和TaskTracker)如何在运行作业时了解数据的位置以应用数据局部性原则?
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |