hadoop - 我如何使用内存中的数据作为输入格式?

时间:2012-07-25 07:23:49

标签: hadoop mapreduce

我正在写一个mapreduce作业,我有想要传递给内存中映射器的输入。

将输入传递给映射器的常用方法是通过Hdfs - sequencefileinputformat或Textfileinputformat。这些输入格式需要在fdfs中包含文件,这些文件将被加载并分割为映射器

我找不到一个简单的方法来传递,让我们说选择列表给映射器。 我发现自己必须将这些元素用于磁盘,然后使用fileinputformat。

任何解决方案?

我正在java offcourse编写代码。

感谢。

1 个答案:

答案 0 :(得分:0)

输入格式不必从磁盘或文件系统加载数据。 还有一些输入格式从其他系统读取数据,如HBase或(http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapred/TableInputFormat.html),其中数据不隐含在磁盘上。只暗示可以通过群集的所有节点上的某些API提供。
所以你需要实现输入格式,在你自己的逻辑中分割数据(只要没有文件就是你自己的任务)并将数据分成记录。 请注意,您的内存数据源应该在群集的所有节点上分发和运行。您还需要一些有效的IPC机制来将数据从您的流程传递到Mapper流程。
我很高兴知道你的情况是什么导致这个不寻常的要求。