1

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

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

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

任何解决方案?

我正在用 java offcourse 编写代码。

谢谢。

4

1 回答 1

0

输入格式不必从磁盘或文件系统加载数据。也有从 HBase 或 (http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapred/TableInputFormat.html) 等其他系统读取数据的输入格式,其中数据并不隐含在磁盘上. 它仅暗示可通过集群所有节点上的某些 API 使用。
因此,您需要实现输入格式,以您自己的逻辑拆分数据(一旦没有文件,这是您自己的任务)并将数据切碎为记录
。请注意,您的内存数据源应分布在集群的所有节点上并运行。您还需要一些有效的 IPC 机制来将数据从您的进程传递到 Mapper 进程。
我也很高兴知道您的情况是什么导致了这种不寻常的要求。

于 2012-07-25T08:09:59.163 回答