如何设置Hadoop中的DataNodes数量?是通过代码,配置还是环境决定的。
同样在浏览文章时,当有人说“每个节点10-100张 map 的首选 map 数”时,这里的“节点”是指NameNode还是DataNode?

当谈到MapTasks的数量时,有人说它等于拆分的数量,有人说它等于块的数量,而其他人则说它是由框架确定的,可能没有给出确切的拆分或块的数量,因此对吗?

最佳答案

问题:如何设置Hadoop中的DataNodes数量?

用于设置或计算数据节点的数量。首先估算 Hadoop存储( H ):

H = crS /(1-i)

哪里:

c =平均压缩率。它取决于使用的压缩类型(Snappy,LZOP等)和数据大小。不使用压缩时,c = 1。

r =复制因子。在生产集群中通常为3。

S =要移动到Hadoop的数据大小。这可以是历史数据和增量数据的组合。例如,增量数据可以是每日数据,并且可以预测一段时间(例如3年)。

i =中间因素。通常为1/3或1/4。 Hadoop的工作空间专用于存储Map阶段的中间结果。

示例:无压缩,即c = 1,复制因子3,中间因子.25 = 1/4

H= 1*3*S/(1-1/4)=3*S/(3/4)=4*S

根据上述假设,Hadoop存储估计为初始数据大小的4倍。

现在,该公式可以估算数据节点(n)的数量:

n = H / d = crS /(1-i)* d

哪里:

d =每个节点可用的磁盘空间。

问题:“每节点10-100张 map 的首选 map 数量”,因此这里的“节点”是指NameNode还是DataNode?

如您所知,MapReduce作业转到数据进行处理,但反之亦然。因此,这里的“节点”是数据节点。

问题:多少张 map ?



如果您拥有10TB的输入数据和128MB的块大小,则最终将获得82,000张 map ,除非使用Configuration.set(MRJobConfig.NUM_MAPS, int)(仅向framework提供提示)将其设置得更高。

关于hadoop - Hadoop中的DataNode和MapTasks数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40834643/

10-16 02:02