如何让每个mapper类在hadoop中读取同一个文件

时间:2013-03-12 21:25:57

标签: hadoop mapper

在我的hadoop作业中,除了输入数据文件之外,我希望每个mapper类(map方法)读取我放入hdfs的公共文件。此文件将被读入每个映射器,并将内容保存在每个映射器中。那怎么办呢?

1 个答案:

答案 0 :(得分:4)

根据您的需要,有不同的方法:

  • 直接在每个映射器中阅读文件from HDFS。仅当公共文件非常小时才建议这样做。
  • 使用CompositeInputFormat在每个映射器中一次读取多个文件,执行所谓的map-side-join。这两个文件将以相同的方式进行拆分和分区。
  • 在作业设置期间将文件添加到DistributedCache。该文件将存储在所有映射器都可以访问的每个节点上。