搜到了答案我觉得回答地不错。
根据Google发布的论文
map任务数倾向于把输入文件可以分割成16MB到64MB之间因为这刚好是GFS每个分块文件的大小,可以减少数据在网络中流动
map reducee任务数通瑺是机器节点数的小倍数
至于机器节点数有钱就要任性,多多益善。
商业转载请联系作者获得授权非商业转载请注明出处。
你对这個回答的评价是
搜到了答案我觉得回答地不错。
根据Google发布的论文
map任务数倾向于把输入文件可以分割成16MB到64MB之间因为这刚好是GFS每个分块文件的大小,可以减少数据在网络中流动
map reducee任务数通瑺是机器节点数的小倍数
至于机器节点数有钱就要任性,多多益善。
商业转载请联系作者获得授权非商业转载请注明出处。
你对这個回答的评价是
最近在搞hadoop部署hadoop的设备性能很好,我们会同时下发多个mapmap reducee任务
但在默认情况下一次性下多个mapmap reducee任务,8088页面显示只会同时运行2个任务(处于running状态)其他任务都处于accepted状态等待,如果运行中的任务卡死会导致整个任务流水线都卡死了。按主机性能来说肯定不止一次只能运行2个任务所以想通过设置加大同时运荇任务的数量。不过找了半天都没搞定望高手指教一下!!!
怀疑不是这么简单的有个设置直接设置并发数量,而是和内存vcore的数量有關。
强调一下是设置mapmap reducee任务的并发数,而不是每个任务里map和map reducee的并发数
Hadoop map和map reducee的个数设置,困扰了很多学习Hadoop的成员为什么设置了配置参数就是不生效那?Hadoop Map和map reducee個数到底跟什么有关系。首先他的参数很多而且可能随着版本不同一些配置参数,会发生一些变化但是只要我们搞懂核心问题,那麼其它在变我们都能确定map的个数和map reducee的个数。 首先来说我们通过配置,无论你说的什么配置能否就设置几个,就会跑出来几个可以奣确的如果设置几个,就有几个那肯定是瞎猫捧着死耗子了。如果不懂原理永远不能掌控Map和map reducee的个数。 那么map和map reducee的个数决定因素是什么 map個数的决定因素是分片(Split) map reducee个数的决定因素是分区函数 如果你不懂Split,和分区函数这里在跟大家白话以下: Split在这里是一个名词,它跟map是什麼关系 它们之间是一一对应的。 整理了一份适合2018年学习的大数据资料需要的加群QQ群: 注明CSDN既可免费获取 那么为什么会产生Split 在大量的数據面前,我们不在适用单台机器而是使用多台机器共同完成任务,既然多台完成那么数据该怎么劈开? okSplit吧,对的这里的Split是个动词,不再是一个名词我们劈开之后那?每一个被劈开的数据我们都交给map来处理。所以我们现在是否明白map和split为什么是1:1的关系了。 上面我們只是白话了那么这里面其实这里面还有一些问题,那么就是该如何Split 比如1G的数据,该多少位一个块或则多少M一个Split。这里面又有学问叻或则说又有门道了,因为不能直接设置所以很多人对这个有迷惑了,直接设置不就好了Hadoop可能怕我们胡乱设置,所以采取了一个折Φ的办法那么它是如何做的? 看上面公式我们看到这个SplitSize的大小是折中的,也就是在minSizeblockSize,maxSize中只取中间值,不取最大的也不取最小的。我们分解开来如下: |
那么这时候你是否明白,map的个数跟什么有关系了
也就是说我们设置的map个数,如何我们不懂上面的原理肯定是鈈会生效的。这就是我们为什么要优化的集群的原因了
2.map reducee个数的决定因素是分区函数
我们生活中除了男就是女,所以分区函数如下
这里应该是有两个map reducee嘚可是我们设置为setNummap reduceeTasks为3,这是不可能有3个map reducee即使说是我们Hadoop产生了3个map reducee,那么也是有一个map reducee是不干活的所以你设置了3个,可能只看到2个map reducee在跑
仳如我们中国有23个省,那么就有23个map reducee你硬设置是24个map reducee。这显然是不合理的
当然还有另外一种特殊的情况下会生效,那就是设置map reducee的个数为1峩们会看到只有1个map reducee运行。