2

我是 hadoop mapreduce 框架领域的新手。我自己阅读了很多教程并理解了框架。我已经成功地在伪分布式模式下配置了一个 hadoop 设置。我有两个需要在 Hadoop MapReduce 中完成的特定任务。

我有许多具有以下格式的数据文件。

交换消息的数量;用户1;用户2;时间戳;

一个例子是:5;约翰·多伊;约翰·史密斯; 1900 年 1 月 1 日;

我想要完成的是

  1. 对用户名进行数据屏蔽(例如在用户名之上构建 SHA256,以便它们是匿名的。)

  2. 汇总给定期间(例如 1 周)内交换的消息数量

现在让我们来回答我的问题:根据我目前的知识,hadoop mapreduce 框架旨在完成第二个任务。我可以映射键值(交换消息的两个用户名,消息数量)并减少它以获得给定时间段(例如 1 周)内的消息总数。但是第一个任务呢?当我进行数据屏蔽时,没有reduce操作,这个任务不是hadoop mapreduce的任务吗?我想并行执行,但真的想不到应用 hadoop mapreduce 来完成第一个任务。我需要处理的数据文件数量非常大,这使得无论如何都要使用hadoop mapreduce。

感谢您的意见!

PS:问题可以概括为“hadoop MapReduce最适合哪种类型的任务?”

4

1 回答 1

2

第一项任务非常适合仅地图工作。MapReduce 通常适用于排序、映射(对数据应用一些花哨的功能)和归约数据。

所以你的问题非常适合MR。

如果您需要任务之间的强通信或迭代繁重的任务(如图形算法),则 MapReduce 不适合。对于最适合的 BSP,您可以在 Hama 或 Giraph 之间进行选择,而 Giraph 主要提供图形处理,而 Hama 是纯 BSP 框架,它也有一个图形处理模块。

于 2012-06-01T08:22:25.323 回答