我正在尝试编写MapReduce作业,它可以在Mapper中读取两个序列文件。我试过在"主"中读取和编写序列文件,但我不知道如何在Mapper中做到这一点。我想我不是很熟悉MapReduce是如何工作的。谢谢你的帮助。
如果一切正确,在main()方法中,您将编写如下内容:
FileInputFormat.addInputPath()
FileOutputFormat.setOutputPath()
告诉Hadoop在哪里可以找到两个输入文件,以及在哪里写入计算结果。
当作业启动时,Hadoop开始读取它在输入目录中找到的文件,并调用映射器的map()方法,将文件的每一行(每次一行)作为参数传递给它。在计算结束时,当reducer发出它的数据时,Hadoop将把结果写入指定输出目录中的一个(或多个)文件中。
所以,映射器和reducer不需要知道任何关于输入/输出文件的信息