2011-11-29 30 views
0

我想在java中编写一个hadoop mapreduce程序。输入是一个数组,输出也是一个数组。但直到现在,我只看到人们使用输入和输出作为它的文件。所以我只是想知道,如果mapreduce可以有任何其他输入和输出格式。hadoop的输入和输出可以不是文件吗?

谢谢

+1

???文件实际上是二进制数据的任意数组。你还在找什么? –

回答

1

Hadoop支持各种各样的输入和输出格式。检查InputFormatOutputFormat的子类。如果需要任何自定义格式,请扩展InputFormat和OutputFormat。在DB输入/输出格式上检查Cloudera的article

0

Hadoop是一个文件系统,map-reduce的重点是处理大量通常不适合内存的数据 - 所以输入和输出通常会以某种方式存储在磁盘上(也称为a.a.文件)。 Hadoop mapreduce类支持读取hadoop支持的不同类型的文件(文本文件,顺序文件),您也可以编写自己的源文件,例如读取其文件格式的HBase comes with a map-reduce wrappe。我还没有尝试过,但正如Praveen指出的文章所示,从其他来源读取

输出更容易 - 因为您正在编写Java代码,因此如果您在缩小阶段就可以执行任何操作想要说的是,在缩小阶段中将消息放入队列中就是这样做的