gpt4 book ai didi

hadoop - Hadoop/Spark 中的多线程

转载 作者:可可西里 更新时间:2023-11-01 14:48:36 31 4
gpt4 key购买 nike

我大致了解多线程,但不确定它在 Hadoop 中的使用方式。

据我所知,Yarn负责管理/控制Spark/Mapreduce作业资源,这里想不到Multi-threading。不确定它是否可以在 Hadoop 生态系统的其他任何地方使用。

如果有人能提供一些这方面的信息,我将不胜感激。

非常感谢,

最佳答案

实际上,YARN 负责管理 Application Master(MR-AppMaster 或 Spark-Driver)请求的容器的资源分配和释放。所以它们之间的RPC都是关于资源协议(protocol)的协商,它不考虑任务在MapReduce和Spark内部如何运行的任何细节。

对于 MapReduce-Hadoop,每个任务(mapper 或 reducer)都是运行在 JVM 上的单个进程,这里不使用任何多线程。

对于Spark来说,每个executor其实都是由很多worker线程组成的。这里每个Spark任务对应MapReduce中的每个任务(单进程)。所以Spark确实是基于多线程模型实现的,对于lower
JVM 的开销和任务之间的数据混洗。

根据我的经验,多线程模型降低了开销,但承受了巨大的容错成本。如果 Spark 中的执行器发生故障,则执行器内运行的所有任务都必须重新运行,但对于 MapReduce,只有单个任务需要重新运行。此外,Spark 还承受着巨大的内存压力,因为执行程序中的所有任务都需要以 RDD 的形式缓存数据。但是 Mapreduce 任务一次只处理一个 block 。

希望对您有所帮助。

关于hadoop - Hadoop/Spark 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40634385/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com