Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-08-16, 00:24

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 2 篇文章 ] 
發表人 內容
 文章主題 : Hadoop運算效能問題
文章發表於 : 2015-01-22, 01:25 
離線

註冊時間: 2015-01-22, 01:17
文章: 1
小弟目前在Hadoop上進行Mahout的movie recommender運算

想測試single node(1台VM)與cluster(4台VM)的運算時間比較

發現cluster花費的運算時間400秒,而single node的運算時間則是417秒

請問為何cluster的運算效能沒有比single node明顯突出

我應該要從哪些參數進行效能優化

感謝大大


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: Hadoop運算效能問題
文章發表於 : 2015-01-24, 10:47 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
ShawnL 寫:
小弟目前在Hadoop上進行Mahout的movie recommender運算
想測試single node(1台VM)與cluster(4台VM)的運算時間比較
發現cluster花費的運算時間400秒,而single node的運算時間則是417秒
請問為何cluster的運算效能沒有比single node明顯突出
我應該要從哪些參數進行效能優化
感謝大大


效能的問題其實不太容易用很短的篇幅回應。

以您的情境來說,在虛擬化的環境,四台 VM 跑在同一台電腦上,使用同一顆硬碟。
自然快不了,因為只有一個人用一顆硬碟,跟四個人同時在搶一顆硬碟,前者會比較快。
這是第一點。

其次,資料集的大小也會影響效能,這部份可以從 JobTracker 的 Job 執行紀錄來進行分析。
過去在論壇上我常會提到一個黃金法則「運算時間必須遠大於資料傳輸時間加上準備時間(Ex. 排程)」
當資料集很小又被切成多份細碎的檔案時,每一份資料的運算時間縮短(Ex. 200秒 -> 切成 10 份,每份縮短成 20 秒),但排程時間仍維持 15~20 秒左右。
那整體而言,並不會比較快。所以通常使用 Hadoop 要效能好看,必須挑選單一資料集的運算時間是分鐘甚至小時以上等級的,會比較恰當。

第三,Mahout 的推薦是迭代運算,因此需要提交多次 MapReduce Job,本來就有排程時間太長的劣勢,
這也是為何 Mahout 專案預計轉進 Spark 的關鍵因素。
這部份您可以從 JobTracker 的執行紀錄觀察,每個 Task 的總時間減掉真實在做運算的時間(該 task 的 cpu time) ,
就是準備時間(初始化跟清除)。

最後,如果是常態性要跑的 Job,可以透過 Java Profiler 觀察執行效能。
在 Hadoop 生態圈中,可以使用 StarFish 專案來協助 Profiling 與 Optimization。
http://www.cs.duke.edu/starfish/
StarFish 可以提供建議的最佳化參數,不過很可惜這個專案沒有繼續了~只能用在 Hadoop 1.x 的 Job。

For Your Reference.

- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 2 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作