我有一个由15个节点(1个主节点和14个从节点)组成的hadoop集群,HDFS的复制因子为3。我用以下命令在YARN中运行了10GB的TeraSort:
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar terasort /terasort-input /terasort-output
在我用14个功能节点完成后,我开始一次停用一个节点,并再次运行TeraSort,以查看执行时间的变化。我注意到,当我缩小规模时,执行时间实际上没有太大变化,因此即使在7个从属节点上,我也有类似的执行时间。
JobHistory回顾了以下值:
14个从机:运行时间:32分钟,12秒;平均地图时间:4分4秒;平均无序播放时间:14分56秒;平均合并时间:3分50秒;平均减速时间:11分35秒;
11个从机:运行时间:30分钟,6秒;平均地图时间*:5分钟,2秒;平均无序播放时间:6分钟,9秒;平均合并时间:8分52秒;平均减速时间:11分39秒;
8个从机:运行时间:32分钟,15秒;平均地图时间:4分29秒;平均无序播放时间:13分48秒;平均合并时间:4分钟,20秒;平均减少时间:11分11秒;
7个从属服务器:运行时间:30分钟,6秒;平均地图时间:4分28秒;平均无序播放时间:7分26秒;平均合并时间:8分26秒;平均减少时间:11分24秒;
问题:
- 为什么对于不同数量的工作节点
- 如何充分利用Hadoop集群,以便运行作业使用14个工作节点比使用7个节点更快
1.请使用较大的数据大小再次运行Terasort。
2.将块大小更改得更大,例如256M。你设置了多少减少任务?如果太小,请将其设置得更大。
0)如果您没有指定映射器的数量&减速器,那么默认情况下您有2个映射器&1减少。使用-D mapred.map.tasks-D mapred.reduce.tasks
1) 数据集太小,导致出现奇怪的行为结果非常低
2) 检查你的IO。如果每个节点有一个旋转磁盘,这不是一个好主意。