我是Hadoop的新手,我只是运行wordCount示例:http://hadoop.apache.org/common/docs/r0.18.2/mapred_tutorial.html
假设我们有一个包含3个文件的文件夹.我希望每个文件都有一个映射器,这个映射器只计算行数并将其返回到reducer.
然后,reducer将输入每个映射器的行数作为输入,并将所有3个文件中存在的总行数作为输出.
所以,如果我们有以下3个文件
input1.txt
input2.txt
input3.txt
Run Code Online (Sandbox Code Playgroud)
并且映射器返回:
mapper1 -> [input1.txt, 3]
mapper2 -> [input2.txt, 4]
mapper3 -> [input3.txt, 9]
Run Code Online (Sandbox Code Playgroud)
减速器将输出
3+4+9 = 16
Run Code Online (Sandbox Code Playgroud)
我在一个简单的java应用程序中完成了这个,所以我想在Hadoop中完成它.我只有一台计算机,并希望尝试在伪分布式环境中运行.
我怎样才能实现这个目标?我应该采取什么适当的措施?
我的代码应该在apache的示例中看起来像那样吗?我将有两个静态类,一个用于mapper,一个用于reducer?或者我应该有3个类,每个映射器一个?
如果你能指导我完成这个,我不知道如何做到这一点,我相信如果我设法编写一些代码来做这些东西,那么我将来能够编写更复杂的应用程序.
谢谢!