集装箱分配| Hadoop集群中的容器大小

时间:2018-02-24 09:37:09

标签: hadoop mapreduce containers

众所周知,默认最小容器大小为1024MB

考虑这个场景:

我已经设置了一个Hadoop群集< 1 - Master& 3 - 的Datanode>在VIRTUAL BOX。

Namenode:master(3GB RAM)
数据节点:data1(512MB RAM),
data2(512MB RAM)
data3(1GB RAM)

输入文件大小:500MB,复制因子为3(所有节点都包含所有块)

  

问题:

1。现在假设我要运行Mapreduce程序,容器是否会在data1,data2上分配? 根据我的结果,Job在所有三个数据节点上创建了容器。

2. 我们有什么方法可以指定在特定节点上运行的作业吗?

1 个答案:

答案 0 :(得分:0)

  

我们有什么方法可以指定在特定节点上运行的作业吗?

你不应该控制它。 Hadoop将容器发送到存在块的datanode,因此应该询问如何控制块的放置位置,我不确定为什么要这样做任

YARN有一个称为"节点标签"的东西,它可以将特定节点分配给特定的调度程序队列,然后你会告诉MapReduce / Tez / Spark作业在哪个队列中运行,从而哪些节点到使用

https://hadoop.apache.org/docs/r2.7.4/hadoop-yarn/hadoop-yarn-site/NodeLabel.html

  

假设我想运行Mapreduce程序,容器是否会在data1,data2上分配?

如果存在块,并且您还有在datanode上运行的节点管理器,并且至少有一个容器有足够的内存,那么是。

如果没有NodeManager和ResourceManager,则不会运行mapreduce作业