我正在尝试编写MapReduce作业,它可以在Mapper中读取两个序列文件。我试过在'main'中读取和写入一个序列文件,但我不知道如何在Mapper中进行。我认为我并不熟悉MapReduce的工作方式。谢谢你帮助我。
答案 0 :(得分:0)
如果一切正确,在main()方法中你写了类似的东西:
FileInputFormat.addInputPath()
FileOutputFormat.setOutputPath()
告诉Hadoop目录在哪里找到你的两个输入文件以及在哪里写出计算结果。
当作业开始时,Hadoop开始读取它在输入目录中找到的文件,并调用mapper的map()方法将文件的每一行(当时一个)作为参数传递给它。 在计算结束时,当reducer发出其数据时,Hadoop将把结果写入指定输出目录中的一个(或多个)文件。
因此,映射器和reducer不需要知道有关输入/输出文件的任何信息。