apachespark或hadoopmapreduce如何请求固定数量的容器?
在spark yarn客户端模式下,可以通过设置配置spark.executor.instances来请求它,该配置与它获得的Yarn容器的数量直接相关。spark如何将其转换为Yarn可以理解的Yarn参数?
我知道在默认情况下,它可以依赖于拆分的数量和配置值 yarn.scheduler.minimum-allocation-mb
, yarn.scheduler.minimum-allocation-vcores
. 但spark有能力精确地请求固定数量的容器。我怎么能这么做?
2条答案
按热度按时间jjjwad0x1#
在hadoopmapreduce中,map任务的容器数量是根据输入拆分的数量来决定的。它基于源文件的大小。对于每个输入拆分,将请求一个Map容器。
默认情况下,每个作业的减速器数为1。它可以通过向mapreduce.reduce.tasks传递参数进行自定义。pig&hive有不同的逻辑来决定减速机的数量这也可以定制)。
每个还原器将请求一个容器(还原容器,通常比Map容器大)。
作业提交期间,将在作业配置文件中明确定义Map器和还原器的总数。
o2rvlv0m2#
我认为是通过使用yarn提供的amapi。am提供程序可以使用
rsrcRequest.setNumContainers(numContainers);
http://hadoop.apache.org/docs/r2.5.2/hadoop-yarn/hadoop-yarn-site/writingyarnapplications.html#writing_a_simple_client 在这里,我对其他问题进行了类似的讨论。Yarn容器理解和调整