[英]How to restore performance of hadoop Map reduce job after migrating from hadoop1 to hadoop2
Hadoop Map reduce job performance(time to execute job) degraded(5min->15min) after migrating from hadoop 1.0.3 -> hadoop 2.8.5
詳情如下:
我有 Hadoop Map 減少在 AWS EMR 環境中執行的作業。
Hadoop 1.0.3 環境詳情:
AMI 版本:2.4.11 Hadoop 版本:1.0.3
EMR 作業的第 1 步(僅 1 步)需要5 分鍾才能運行,測試實例由 1 個主服務器和 1 個核心(aws 術語)組成。 在 hadoop 儀表板中,我的應用程序包含一個作業。
Hadoop 2.8.5 環境詳情:
在 Hadoop 2.8.5 環境中,相同的 mapreduce 作業需要大約 15 分鍾才能運行所有相同的配置(1master,1 core)
配置值
yarn.scheduler.maximum-allocation-mb = 57344
我嘗試過的:調整了以下設置,但在執行作業的時間方面的性能在任何情況下都沒有改變。 共享測試場景之一的價值
下面我提到嘗試了不同的組合
由於 hadoop2 中存在資源管理器架構更改,因此我圍繞它進行了試驗,但是否有任何我可能遺漏的東西。 我在 Hadoop 中的熟練程度:初學者
問題是 Hadoop map-reduce 中的小文件問題。 在 Hadoop V1.0.3 中,通過重新啟動 JVM 容器(mapred.job.reuse.jvm.num.tasks)掩蓋了這個問題
但是,在 Hadoop V2 中,不允許重用 JVM 容器。 使用 Uber 模式也不可行,因為它將按順序運行 ApplicationMaster 容器中的所有 map 任務。
使用CombineTextInputFormat.setMaxInputSplitSize(job, bytes)
解決了小文件問題,因為它根據作為參數提供的字節數創建了邏輯拆分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.