地图缩小是否适用于小型非结构化来源?

时间:2017-03-16 01:57:11

标签: hadoop mapreduce

我做了一些研究,并努力找出Hadoop的典型用例。到目前为止我所理解的是它应该是批处理的最佳方法,当数据大小至少为TB级时,源也是非结构化的,并且算法是顺序的,比如计算许多单词的出现次数文件... 在高层次上,我的理解是关键点是将代码移向数据节点而不是相反的传统方法。

但是

1)我仍然没有看到 - 以简单的方式 - 为什么其他经典并行编程实现不应达到类似的性能

2)我想知道Hadoop map reduce范例是否适用于数据大小较小的用例(即使源也是非结构化的)或者在这种情况下哪种更合适的技术?

1 个答案:

答案 0 :(得分:0)

您的问题非常有效。我在MapReduce和其他大数据生态系统并行框架方面做得非常深入,所以希望我能提供一些上下文。出于对话的目的,让我们将hadoop的定义视为由HDFS和MapReduce组成的环境(忘记Hive,Pig等)。

1)其他并行编程框架可以实现(并超过)Hadoop的性能。与大多数其他模型相比,Hadoop的优势在于容错性以及许多低级细节都是从应用程序开发人员那里抽象出来的,因此您不需要成为专业的系统程序员工作量为多PB级。

2)MapReduce基本上可以在任何比例下运行(例如,参见Apache的单词计数示例here,它很小)。据说它在操作方面有一些相当大的开销,例如找出在哪里编写文件和在计算方面分块工作(所有这些都是由hadoop为你处理的)。在小规模的情况下,使用传统的map()和reduce()函数处理数据会更好。这个概念完全相同,但有不同的执行方式。