如何在DISCO中的映射器之间获取共享的全局对象

时间:2014-04-17 00:46:15

标签: python mapreduce disco

我的每个地图制作者都需要访问非常大的字典。有没有我可以避免每个映射器打开自己的副本的开销,而是所有映射器都指向一个全局共享对象?

任何特定于DISCO或mapreduce范例的建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

使用Redis键值存储

可以在Linux上快速安装,也可以使用Windows编译版本。

python redis package将允许您非常轻松地编写,读取和更新值。

使用哈希数据类型最能为您提供服务,您可以在所谓的字段中添加/编辑新值(Python词典术语中的键),它非常快,而且非常简单。

此解决方案甚至可用于独立流程。您甚至可以通过网络在Redis中共享数据,因此对于map / reduce方案,这可能是一个很好的选择。

唯一的事情是,在存储和恢复值时,您必须关心的是值只能是字符串,因此您必须对它们进行序列化和反序列化。 json.dumps和json.loads对此非常有用。