好的,我正在尝试学习 Hadoop 和 mapreduce。我真的很想从 mapreduce 开始,我发现了很多很多映射器和缩减器等的简化示例。但是,我发现遗漏了一些东西。
虽然显示一个词在文档中出现多少次的示例很容易理解,但它并不能真正帮助我解决任何“现实世界”问题。有谁知道在伪现实情况下实现 mapreduce 的好教程。例如,我想在类似于 Adventureworks 的数据存储之上使用 hadoop 和 mapreduce。现在我想在 5 月份获得给定产品的订单。从 hadoop/mapreduce 的角度来看,这看起来如何? (我意识到这可能不是 mapreduce 旨在解决的问题类型,但我很快就想到了。)
任何方向都会有所帮助。
最佳答案
本书Hadoop: The Definitive Guide是一个很好的起点。介绍性章节对您弄清楚 MapReduce 在哪里有用以及何时应该使用它应该非常有用。更高级的章节有很多比字数更真实的例子。
如果您想深入了解,您可能需要查看 Data-Intensive Text Processing with MapReduce .这肯定有很多“真实世界”用例,但听起来您对进行文本处理并不感兴趣。
对于您的特定示例,要实现的主要内容是:
- 映射阶段主要用于解析、转换数据和过滤数据。想想逐条记录、无共享的记录处理方法。在字数统计中,这是解析行并拆分出字词。
- reduce 阶段都是关于聚合的:计数、平均、最小值/最大值等。在单词计数中,这是对单词的实例进行计数。
因此,如果您想要某个给定产品在 5 月份的所有记录,您可以使用仅限 map 的作业来过滤所有数据并仅保留您想要的记录。但是,您确实应该了解 Hadoop 的用途。更适合 Hadoop 的问题是:给我每个月购买每件商品的次数(也许可以构建一个矩阵)。您很少像您建议的那样寻找特定记录。
如果您正在寻找更实时的访问平台,您应该查看HBase一旦您完成了 Hadoop 的学习。
关于hadoop - 傻瓜化的Mapreduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839389/