algorithm - Hadoop 适合哪种类型的并行算法?

标签 algorithm hadoop parallel-processing

我完全不是 Hadoop 专家,但我的理解是 Hadoop 非常适合并行算法,其中并行性表现为 map-reduce 形式或任何其他类型的分而治之。

还有其他类型的算法技术也很适合吗?

最佳答案

Hadoop 适用于令人尴尬的并行工作负载(并行任务之间没有依赖性)。进程之间没有消息传递机制。 Map 和 Reduce 进程遵循基于 IO 的通信模式,这本身就是一个很大的开销。

Map Reduce 不适合编写迭代算法(例如 KMeans、PageRank),因为每次迭代都是一个单独的 map reduce 应用程序,并且由于巨大的 IO 开销,算法的性能会下降。对于迭代算法,您可以使用消息传递接口(interface) (MPI)。它支持进程间基于套接字的通信,因此与 map reduce 相比,您可以显着提高性能。由于大量机器学习算法本质上是迭代的,因此不应使用 mapreduce 对其进行编程。

如果您的应用程序需要容错,Hadoop 是比 MPI 更好的选择。

关于algorithm - Hadoop 适合哪种类型的并行算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061482/

相关文章:

c# - 一组号码中的池号码以匹配另一组号码的大小

Hadoop NameNode 不启动

hadoop - PIG:在一组特定的列中安排多个记录

parallel-processing - 在集群上部署 optaplanner

multicore - 为什么 Go 语句不并行执行?

python - [ multiprocessing ] 中每个进程的数组需要一个列表,其中所有子列表合并

java - 解决 Codility PermMissingElem 测试的正确方法是什么? ( java )

algorithm - 从整数流创建最大堆

sql - 在文本中进行单词搜索以查找包含最匹配变体的文本

hadoop - 使用 Mahout 构建推荐引擎