在hadoop工作中,除了输入数据文件外,我希望每个mapper类(map方法)读取一个公共文件,并将其放入hdfs中。此文件将读入每个Map器,并将内容保存在每个Map器中。那怎么做呢?
9vw9lbht1#
根据您的需要,有不同的方法:直接从每个Map器中的hdfs读取文件。只有当公共文件非常小时才建议这样做。使用compositeinputformat一次读取每个Map器中的多个文件,执行所谓的Map端连接。两个文件将以相同的方式进行拆分和分区。在作业设置期间将文件添加到distributedcache。该文件将存储在所有Map程序可以访问的每个节点上。
1条答案
按热度按时间9vw9lbht1#
根据您的需要,有不同的方法:
直接从每个Map器中的hdfs读取文件。只有当公共文件非常小时才建议这样做。
使用compositeinputformat一次读取每个Map器中的多个文件,执行所谓的Map端连接。两个文件将以相同的方式进行拆分和分区。
在作业设置期间将文件添加到distributedcache。该文件将存储在所有Map程序可以访问的每个节点上。