hadoop - 傻瓜化的Mapreduce

标签 hadoop mapreduce

好的,我正在尝试学习 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/

相关文章:

hadoop - 能否自定义 Hadoop 的 Shuffle/Sort(或分区)阶段来执行图形遍历?

hadoop - 如何从本地磁盘而不是HDFS上的数据在Hive上创建外部表?

java - Hadoop:所有数据节点 127.0.0.1:50010 都是坏的。中止

hadoop 中的 XML 处理

eclipse - java.io.IOException : No FileSystem for scheme: maprfs 异常

hadoop - AVRO Mapreduce 错误

java - 使用 gradle 构建一个简单的 MapReduce 项目 : Hadoop dependencies don't have Mapper and Reducer

hadoop - mapreduce ---自定义数据类型

python - 序列文件名用作 Hadoop 输出中的键?

java - 线程 “main”中的异常java.io.IOException:打开作业jar时出错:hadoop中的ex.jar