如何在Yarn中分发Reduce job(多减少作业)(Hadoop 2.2.0)

时间:2014-01-29 07:13:07

标签: hadoop apache-pig reduce yarn

我已经使用过HADOOP 1.2.1服务器,并在那里执行许多猪作业。 最近,我考虑将我的Hadoop服务器更改为HADOOP 2.2.0。 所以我在HADOOP 2.2.0中尝试了一些猪工作,就像我在HADOOP 1.2.1版本中所做的那样。

但在YARN MR2中我很难理解的一件事是,只有一个减少了每个工作岗位上的工作。

第一次,我认为确定,reduce比mr1快,因为资源管理器通过仅在一台服务器中处理来有效地安排减少作业。

但是,在每个大型工作中,YARN MR2每次只分配一次减少工作。

以下是Extream案例。

My Old HADOOP(版本1.2.1)服务器由1个jobtracker和2个tasktracker组成。 (每个4核,32G)

Kind    Total Tasks(successful+failed+killed)   Successful tasks    Failed tasks    Killed tasks    Start Time  Finish Time
Setup   1   1   0   0   27-Jan-2014 18:01:45    27-Jan-2014 18:01:46 (0sec)
Map 2425    2423    0   2   27-Jan-2014 18:01:26    27-Jan-2014 19:08:58 (1hrs, 7mins, 31sec)
Reduce  166 163 0   3   27-Jan-2014 18:04:35    27-Jan-2014 20:40:15 (2hrs, 35mins, 40sec)
Cleanup 1   1   0   0   27-Jan-2014 20:40:16    27-Jan-2014 20:40:17 (1sec)

需要2小时38分钟。

我的新HADOOP(版本2.2.0)服务器由1个资源管理器和8个节点管理器组成。(每个4核,32G)(新系统要好得多)

Job Name:   PigLatin:DefaultJobName
User Name:  hduser
Queue:  default
State:  SUCCEEDED
Uberized:   false
Started:    Tue Jan 28 16:09:41 KST 2014
Finished:   Tue Jan 28 21:47:45 KST 2014
Elapsed:    5hrs, 38mins, 4sec
Diagnostics:    
Average Map Time    41sec
Average Reduce Time 3hrs, 48mins, 23sec
Average Shuffle Time    1hrs, 36mins, 35sec
Average Merge Time  1hrs, 27mins, 38sec
ApplicationMaster
Attempt Number   Start Time  Node    Logs
1   Tue Jan 28 16:09:39 KST 2014    awdatanode2:8042    logs
Task Type    Total   Complete
Map 1172    1172
Reduce  1    1
Attempt Type     Failed  Killed  Successful
Maps    0   1   1172
Reduces 0   0   1

需要5小时38分钟。

虽然My Old Hadoop服务器资源不足,但它比New Hadoop要快得多。因为减少分配的工作。 另一方面,HADOOP 2.2.0服务器拥有丰富的资源,并且map比旧系统快得多,但减少需要非常长的时间。

Hadoop 2.2内存配置为Map(4G,堆空间3G)和Reduce(8G,堆空间6G)。 我尝试了各种配置。但结果总是一个减少工作。

所以我检查了猪源代码。

My Pig作业始终使One减少作业的原因是InputSizeReducerEstimator类无法访问hdfs文件系统。

  

// InputSizeReducerEstimator.java的第79行   列出poLoads = PlanHelper.getPhysicalOperators(mapReduceOper.mapPlan,POLoad.class);

结果poLoads总是0大小。

所以我的减少工作总是估计为一个。

1 个答案:

答案 0 :(得分:1)

我通过重建pig-0.12.1-h2.jar build来解决这个问题。

我问过猪用户组......他们修补了

https://issues.apache.org/jira/browse/PIG-3512