Hadoop MapReduce thinking



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

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

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

一个例子是:5;无名氏;约翰·史密斯;1/1/1900;

我想完成的是

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

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

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

感谢您的评论!

PS:这个问题可以概括为"hadoopMapReduce最适合哪种类型的任务?

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

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

如果你需要在任务之间进行强有力的沟通,或者像在图算法中那样迭代繁重的任务,MapReduce就不适合了。对于BSP最适合,您可以在Hama或Giraph之间进行选择,而Giraph主要提供图形处理,Hama是纯BSP框架,也具有用于图形处理的模块。

相关内容

  • 没有找到相关文章

最新更新