在hadoop和spark中,在yarn上运行时,容器/资源分配意味着什么?

vshtjzan  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(354)

当spark在内存中运行时,在yarn上运行时,spark中的资源分配意味着什么?它与hadoop的容器分配有什么不同?只是想知道hadoop的数据和计算都在磁盘上,而spark在内存中。

q8l4jmvw

q8l4jmvw1#

hadoop是一个能够处理大数据的框架。它有两层。一个是称为hdfs的分布式文件系统层,另一个是分布式处理层。在hadoop2.x中,处理层是以一种通用的方式构建的,因此它也可以用于非mapreduce应用程序。对于任何进程,我们都需要内存、网络、磁盘和cpu等系统资源。容器一词出现在hadoop2.x中。在hadoop1.x中,等价的术语是slot。容器是内存和cpu的分配或共享。yarn是一种通用的资源管理框架,通过适当的分配和共享,可以有效地利用集群节点中的资源。
内存处理是指在不将中间数据写入磁盘的情况下,将数据完全装入内存并进行处理。由于计算是在内存中进行的,而没有太多磁盘i/o操作,因此此操作将更快。但这需要更多的内存,因为整个数据都将加载到内存中。
批处理是指数据将被采取和批处理,中间结果将被存储在磁盘中,并再次提供给下一个进程。这也需要内存和cpu进行处理,但与完全内存处理系统相比,它将更少。
yarn的资源管理器充当mapreduce、impala(使用llama)、spark(在yarn模式下)等应用程序的中央资源分配器。因此,当我们触发作业时,它将请求资源管理器提供执行所需的资源。资源管理器将根据可用性分配资源。资源将以容器的形式分配。容器只是内存和cpu的分配。一个作业可能需要多个容器。容器将根据可用性跨集群分配。这些任务将在容器内执行。
例如,当我们提交mapreduce作业时,会启动一个mr应用程序主控程序,它会与资源管理器协商其他资源。map和reduce任务将在分配的资源中生成。
类似地,当我们提交spark作业(yarn模式)时,将启动spark应用程序主机,它将与资源管理器协商其他资源。rdd将在分配的资源中生成。

相关问题