我正在写一个mapreduce作业,我有想要传递给内存中映射器的输入。
将输入传递给映射器的常用方法是通过Hdfs - sequencefileinputformat或Textfileinputformat。这些输入格式需要在fdfs中包含文件,这些文件将被加载并分割为映射器
我找不到一个简单的方法来传递,让我们说选择列表给映射器。 我发现自己必须将这些元素用于磁盘,然后使用fileinputformat。
任何解决方案?
我正在java offcourse编写代码。
感谢。
答案 0 :(得分:0)
输入格式不必从磁盘或文件系统加载数据。
还有一些输入格式从其他系统读取数据,如HBase或(http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapred/TableInputFormat.html),其中数据不隐含在磁盘上。只暗示可以通过群集的所有节点上的某些API提供。
所以你需要实现输入格式,在你自己的逻辑中分割数据(只要没有文件就是你自己的任务)并将数据分成记录。
请注意,您的内存数据源应该在群集的所有节点上分发和运行。您还需要一些有效的IPC机制来将数据从您的流程传递到Mapper流程。
我很高兴知道你的情况是什么导致这个不寻常的要求。