0

什么是最容易使用的分布式 map reduce 编程系统?

例如。在包含许多用户的分布式数据存储中,每个用户都有许多连接,假设我想计算连接总数:

Map:
for all records of type "user"
do for each user
    count number of connections
    retrun connection_count_for_one_user

Reduce:
reduce (connection_count_for_one_user)
    total_connections += connection_count_for_one_user

是否有任何 mapreduce 系统可以让我以这种方式编程?

4

1 回答 1

2

好吧,我会尝试提出一些建议,但是您的问题不太清楚。

那么你是如何存储你的数据的呢?存储机制与您如何将 MapReduce 算法应用于数据是分开的。我将假设您使用的是Hadoop 分布式文件系统

您说明的问题实际上与典型的Hadoop MapReduce 字数统计示例非常相似。您只是在计算用户而不是单词。

将 MapReduce 应用于存储在 HDFS 上的数据的一些选项是:

  • Java 框架- 如果您对 Java 感到满意,那就太好了。
  • Pig - 一种高级脚本语言。
  • Hive - Hadoop 的数据仓库解决方案,提供类似 SQL 的接口。
  • Hadoop 流- 允许您使用几乎任何语言编写映射器和缩减器。

哪个最容易?

那么这一切都取决于你觉得舒服。如果了解 Java,请查看标准 Java 框架。如果您习惯于脚本语言,您可以使用 Pig 或流式传输。如果你知道 SQL,你可以看看使用 Hive QL 来查询 HDFS。我会看一下每个文档作为起点。

于 2010-02-19T01:49:56.323 回答