小编Geo*_*rge的帖子

Java Hadoop:我如何创建作为输入文件的输出器并给出一个输出,即每个文件中的行数?

我是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个类,每个映射器一个?

如果你能指导我完成这个,我不知道如何做到这一点,我相信如果我设法编写一些代码来做这些东西,那么我将来能够编写更复杂的应用程序.

谢谢!

java distributed hadoop mapreduce

5
推荐指数
2
解决办法
8231
查看次数

标签 统计

distributed ×1

hadoop ×1

java ×1

mapreduce ×1