MapReduce从Redis读取输入

时间:2013-07-29 20:30:10

标签: java hadoop mapreduce redis

我想编写一个执行MapReduce Job的Java程序(例如字数)。输入来自Redis。如何编写Map类来从Redis中逐个检索并在Map类中执行一些过程,就像之前从HDFS读取的那样?

4 个答案:

答案 0 :(得分:2)

没有OOTB功能允许我们这样做。但是你可能会发现像Jedis这样的东西很有帮助。 Jedis是一个Java客户端,使用它可以向/从Redis读取/写入数据。有关示例,请参阅this

如果您没有与Java强烈耦合,您可能还会发现R3非常有用。 R3是使用Redis后端用python编写的map reduce引擎。

HTH

答案 1 :(得分:1)

显然,你需要自定义你的InputFormat。 请阅读this教程,了解如何编写自己的自定义InputFormat和RecordReader。

答案 2 :(得分:0)

将您的密钥放入HDFS。在map()中,只需根据输入键从redis进行查询。

答案 3 :(得分:0)

尝试Redisson它是基于Redis的内存数据网格for Java。它允许对存储在Redis中的数据执行Map Reduce。

更多文档here