gpt4 book ai didi

hadoop - 如何在 Yarn (Hadoop 2.2.0) 中分配 Reduce 作业(多 reduce 作业)

转载 作者:可可西里 更新时间:2023-11-01 15:38:26 27 4
gpt4 key购买 nike

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

但是在 YARN MR2 中我很难理解的一件事是,每个 mr 作业中只安排了一个 reduce 作业。

起初,我认为可以,reduce 比 mr1 更快,因为资源管理器通过只在一台服务器上处理它来有效地调度 reduce 作业。

但是在每个大型 mr 作业中,YARN MR2 每次只分配一个 Reduce 作业。

以下是 Extream 案例。

我的旧 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 TimeSetup   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:DefaultJobNameUser Name:  hduserQueue:  defaultState:  SUCCEEDEDUberized:   falseStarted:    Tue Jan 28 16:09:41 KST 2014Finished:   Tue Jan 28 21:47:45 KST 2014Elapsed:    5hrs, 38mins, 4secDiagnostics:    Average Map Time    41secAverage Reduce Time 3hrs, 48mins, 23secAverage Shuffle Time    1hrs, 36mins, 35secAverage Merge Time  1hrs, 27mins, 38secApplicationMasterAttempt Number   Start Time  Node    Logs1   Tue Jan 28 16:09:39 KST 2014    awdatanode2:8042    logsTask Type    Total   CompleteMap 1172    1172Reduce  1    1Attempt Type     Failed  Killed  SuccessfulMaps    0   1   1172Reduces 0   0   1

耗时 5 小时 38 分钟。

虽然我的旧 Hadoop 服务器资源很差,但它比新 Hadoop 快得多。因为减少分配的工作。另一方面,HADOOP 2.2.0服务器资源丰富,map比旧系统快很多,但reduce耗时非常长。

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

所以我检查了 pig 的源代码。

My Pig 作业总是做一个 reduce 作业的原因是 InputSizeReducerEstimator 类无法访问 hdfs 文件系统。

// line 79 of InputSizeReducerEstimator.java List poLoads = PlanHelper.getPhysicalOperators(mapReduceOper.mapPlan, POLoad.class);

结果 poLoads 总是 0 大小。

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

最佳答案

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

我问了 pig 用户组...他们在

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

关于hadoop - 如何在 Yarn (Hadoop 2.2.0) 中分配 Reduce 作业(多 reduce 作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21424455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com