Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-06-28, 04:18

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




發表新文章 回覆主題  [ 3 篇文章 ] 
發表人 內容
 文章主題 : 請問heapsize與記憶體之間關係的釐清,好複雜,請教一下
文章發表於 : 2014-02-18, 20:51 
離線

註冊時間: 2013-10-15, 21:01
文章: 50
請問一下,記憶體之間的計算到底是怎麼回事
50030與50070之間的heapsize到底是甚麼呢
Cluster Summary (Heap Size is 15.5 MB/966.69 MB)
前面的15.5MB到底是用了哪些記憶體,而966.69MB又是怎麼出來的


再hadoop-env.sh裡面
如果我改變了heapsize大小,(Heap Size is 15.5 MB/966.69 MB)這邊就會有變動
可是如果改的太大,就會錯誤,這邊我想請問的是,range是取決於我的電腦記憶體嗎(我只有4g,如果8g可以設的更大!?)

之前jazz大大說的,加入
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx256m</value>
</property>
可以改善 heapsize memory error的問題
但是我加上去之後,再50030跑的任務裡面的Job File: hdfs://localhost:9000/windoop/mapred/st ... 01/job.xml
可以看到設定的資訊,而mapred.child.java.opts不管我怎麼修改永遠是-Xmx200m..
但是我改其餘設定是有改變的,就是mapred.child.java.opts都是200...往上調都沒辦法...這問題該怎麼辦呢!?


請問mapper任務過多,與小檔案過多,這兩者的問題,因該是要怎麼解決呢!?
就我目前認知,mapper任務過多,會影響50030裡面的Cluster Summary (Heap Size is 15.5 MB/966.69 MB)
這個想法是對的嗎,mapper任務影響這邊的記憶體
所以要解決這個問題,我的想法是要減少Mapper數量
因為我的MapReduce是跑while迴圈的,也就是說,記憶體只要能夠容納那回合的MapReduce,
下一回合記憶體就回清空從新跑MapReduce是嗎


而小檔案過多,會影響50070裡面的Cluster Summary (Heap Size is 15.5 MB/966.69 MB)
所以要解決這個問題,我的想法是要減少hdfs上的小檔案
請問這兩者的認知有錯誤嗎

如果我要讓hadoop能順利跑完,再不考慮時間的情況下,該怎麼解決呢
我的程式只跑Mapper任務

hadoop手冊的環境設定用了四頁介紹這些東西,但我還是搞不清楚,
到底哪些動作會造成記憶體不足
是Mapper的任務數量嗎,還是Mapper任務數量與檔案大小都有可能,那該怎麼選擇呢,是大檔少量,還是小檔多量

這些全部設定我都只有在Master有做設定,叢集的其他node電腦並沒做更改,是否是不對的,全部電腦都要統一設定!?

煩請大大門回答了,感謝。


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問heapsize與記憶體之間關係的釐清,好複雜,請教一下
文章發表於 : 2014-02-24, 18:34 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
AndyTsai 寫:
請問一下,記憶體之間的計算到底是怎麼回事
50030與50070之間的heapsize到底是甚麼呢
Cluster Summary (Heap Size is 15.5 MB/966.69 MB)
前面的15.5MB到底是用了哪些記憶體,而966.69MB又是怎麼出來的


預設 hadoop-env.sh 中設定 HADOOP_HEAPSIZE=1024 (MB)
扣除 code segment 的部份,其餘就是這裡講的 966.69 MB

檢查到底有沒有改對,請 ps ax | grep java | less 然後按 / 搜尋 -Xmx

AndyTsai 寫:
再hadoop-env.sh裡面
如果我改變了heapsize大小,(Heap Size is 15.5 MB/966.69 MB)這邊就會有變動
可是如果改的太大,就會錯誤,這邊我想請問的是,range是取決於我的電腦記憶體嗎(我只有4g,如果8g可以設的更大!?)


當然,受限於實際硬體的上限。4GB 記憶體,假設原本作業系統吃掉 1GB,
NN (NameNode), SNN (Secondary NameNode), JobTracker (JT), TaskTracker (TT), DataNode (DN) 根據 hadoop-env.sh
還配給 2GB, 2 GB * 5 + 1 GB = 11 GB,
11 GB - 4 GB = 7 GB,那接著就看 SWAP 切多大了。所以如果單機硬體受現,那就只能拆散到多台。
這在叢集運算 (PC Cluster / Parallel Computing) 年代就已經是如此了

AndyTsai 寫:
之前jazz大大說的,加入
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx256m</value>
</property>
可以改善 heapsize memory error的問題
但是我加上去之後,再50030跑的任務裡面的Job File: hdfs://localhost:9000/windoop/mapred/st ... 01/job.xml
可以看到設定的資訊,而mapred.child.java.opts不管我怎麼修改永遠是-Xmx200m..
但是我改其餘設定是有改變的,就是mapred.child.java.opts都是200...往上調都沒辦法...這問題該怎麼辦呢!?


修改 mapred-site.xml 之後,必須重新啟動 JT, TT 才會生效。
驗證方式,一樣 ps ax | grep java | less 搜尋 Child 看 -Xmx 的數值。

AndyTsai 寫:
請問mapper任務過多,與小檔案過多,這兩者的問題,因該是要怎麼解決呢!?
就我目前認知,mapper任務過多,會影響50030裡面的Cluster Summary (Heap Size is 15.5 MB/966.69 MB)
這個想法是對的嗎,mapper任務影響這邊的記憶體
所以要解決這個問題,我的想法是要減少Mapper數量
因為我的MapReduce是跑while迴圈的,也就是說,記憶體只要能夠容納那回合的MapReduce,
下一回合記憶體就回清空從新跑MapReduce是嗎


照剛剛的假設,如果只跑一台,NN, SNN, JT, TT, DN 若照預設值已經是 1 GB * 5,加上本機作業系統用掉 1GB
每個 TT 預設跑 2 個 Mapper 跟 2 個 Reducer,預設 Child 的參數是 256 MB
那這樣就是 1 GB * 5 + 1 GB (OS) + 2 * 256 MB + 2 * 256 MB = 7 GB。
若提高 mapper slot 個數、reducer slot 個數,那就需要更多 HEAP 記憶體。

若有架設 Ganglia 會發現系統一直處於很高 Cache 的狀態,約佔系統實際記憶體的 90% 為上限。
預設 map() 並不會呼叫 GC (記憶體回收, Garbage Collection),會傾向儘量讓資料 Cache 在記憶體,以加速 I/O 。
所以下一回合不會清空。您可以透過 jconsole 或 Java Remote Debug 的方式,attach 到特定 pid 觀察記憶體用量。

AndyTsai 寫:
而小檔案過多,會影響50070裡面的Cluster Summary (Heap Size is 15.5 MB/966.69 MB)
所以要解決這個問題,我的想法是要減少hdfs上的小檔案
請問這兩者的認知有錯誤嗎
如果我要讓hadoop能順利跑完,再不考慮時間的情況下,該怎麼解決呢
我的程式只跑Mapper任務
hadoop手冊的環境設定用了四頁介紹這些東西,但我還是搞不清楚,
到底哪些動作會造成記憶體不足
是Mapper的任務數量嗎,還是Mapper任務數量與檔案大小都有可能,那該怎麼選擇呢,是大檔少量,還是小檔多量
這些全部設定我都只有在Master有做設定,叢集的其他node電腦並沒做更改,是否是不對的,全部電腦都要統一設定!?
煩請大大門回答了,感謝。


我的經驗是小檔案太多、迴圈太多,會造成 50070 的 Heap Size 逼近 90% 以上
然後整個系統會跑得非常慢,甚至跑不出來。各參數之間會相互影響,所以這也是 Hadoop Cluster 難管理,MapReduce 程式不容易開發的地方,
也就是程式會跑,可是跑不動。

小檔案太多的問題,習慣上用壓縮檔來解決,或者用 HDFS Archive 的方式解決。
至於 MapReduce 會用到迴圈的部份就比較難判斷,因為跟專業領域的程式邏輯有關。

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問heapsize與記憶體之間關係的釐清,好複雜,請教一下
文章發表於 : 2014-02-26, 14:33 
離線

註冊時間: 2013-10-15, 21:01
文章: 50
感謝JAZZ大大回答,我會再去多方測試的!


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

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


誰在線上

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


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

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