Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-07-02, 09:52

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




發表新文章 回覆主題  [ 5 篇文章 ] 
發表人 內容
 文章主題 : 遇到莫名的錯誤訊息,想請問大大門這是甚麼問題
文章發表於 : 2014-02-19, 21:02 
離線

註冊時間: 2013-10-15, 21:01
文章: 50
14/02/19 20:57:11 INFO mapred.JobClient: Task Id : attempt_201402191820_0013_m_000000_0, Status : FAILED
java.io.IOException: Could not obtain block: blk_-2709687955995524217_1002 file=/user/root/input/10/MST.txt
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2269)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2063)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2224)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2152)
at java.io.FilterInputStream.read(Unknown Source)
at only.NewMstEnd.grabFiles(NewMstEnd.java:442)
at only.NewMstEnd.access$0(NewMstEnd.java:425)
at only.NewMstEnd$Map1.map(NewMstEnd.java:73)
at only.NewMstEnd$Map1.map(NewMstEnd.java:1)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)


請問這是甚麼問題!?
本然從設定 job.setInputFormatClass(NLineInputFormat.class);
job.getConfiguration().set(NLineInputFormat.LINES_PER_MAP, "1000");

改成job.setInputFormatClass(TextInputFormat.class);
就一直有這樣得問題,這是甚麼原因呢??


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 遇到莫名的錯誤訊息,想請問大大門這是甚麼問題
文章發表於 : 2014-02-20, 00:31 
離線

註冊時間: 2013-10-15, 21:01
文章: 50
在單機模式情況下跑,會出現
14/02/20 00:26:56 WARN hdfs.DFSClient: Failed to connect to /127.0.0.1:50010, add to deadNodes and continuejava.net.SocketException: No buffer space available (maximum connections reached?): connect
14/02/20 00:26:56 INFO hdfs.DFSClient: Could not obtain block blk_-3945183660311999248_1003 from any node: java.io.IOException: No live nodes contain current block. Will get new block locations from namenode and retry...

可是為什麼會死掉,是哪裡的設定超過了負荷嗎...這問題好頭大,有大大有經驗的嗎...


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 遇到莫名的錯誤訊息,想請問大大門這是甚麼問題
文章發表於 : 2014-02-24, 18:37 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
AndyTsai 寫:
在單機模式情況下跑,會出現
14/02/20 00:26:56 WARN hdfs.DFSClient: Failed to connect to /127.0.0.1:50010, add to deadNodes and continuejava.net.SocketException: No buffer space available (maximum connections reached?): connect
14/02/20 00:26:56 INFO hdfs.DFSClient: Could not obtain block blk_-3945183660311999248_1003 from any node: java.io.IOException: No live nodes contain current block. Will get new block locations from namenode and retry...

可是為什麼會死掉,是哪裡的設定超過了負荷嗎...這問題好頭大,有大大有經驗的嗎...


先確認 NameNode, 是否還在吧。
目前看起來是跑 pseudo-distributed Mode 偽分散模式
在 4GB 的條件下,除非您把記憶體參數有先算好,不然真的蠻容易當掉的。

如果只是在驗證程式邏輯,建議先跑 Local Mode (單機模式),也就是解開 Hadoop 以後不做任何設定,全部採用預設值。

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 遇到莫名的錯誤訊息,想請問大大門這是甚麼問題
文章發表於 : 2014-02-26, 11:45 
離線

註冊時間: 2013-10-15, 21:01
文章: 50
我是確定NameNode還在,在偽分散或是叢集下跑都有問題,而且都是跑到一定的量才會出錯,
程式邏輯方面因該是沒甚麼問題,如果用NLineInputFormat把mapper數提高的話,結果是跑得出來的,
所以才有會不會一個spilt有太多的record才造成的錯誤懷疑,加上都是跑到一定的回合才出錯,才有因該是某方面記憶體不足造成的問題,
我覺得比較有希望的是調整下列這個,可是我怎麼調都還是維持在200,很無奈,不知道是否是windows系統問題還怎樣,有時間再拿去mac教室
試試看改掉下面這個是否有解決了
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx256m</value>
</property>

這算是我遇到最難解的問題,網路上看到的都是說我NameNode死掉了...可是並沒有死掉,他出現錯誤之後,map任務還會重新繼續跑,都是跑到60%左右
才出錯...檔案重新上傳也一樣,單機,偽分散,叢集通通不行,目前只有提高那回合的mapper數量才能解決...


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 遇到莫名的錯誤訊息,想請問大大門這是甚麼問題
文章發表於 : 2014-02-28, 08:56 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
AndyTsai 寫:
我覺得比較有希望的是調整下列這個,可是我怎麼調都還是維持在200,很無奈,不知道是否是windows系統問題還怎樣,有時間再拿去mac教室
試試看改掉下面這個是否有解決了
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx256m</value>
</property>
單機,偽分散,叢集通通不行,目前只有提高那回合的mapper數量才能解決...


1. 我不確定修改完參數後,您是否有重新啟動 JobTracker 跟 TaskTracker。
 其次,驗證的方式可以用 ps ax | grep java 觀察 Child 的 -Xmx 是否有改。

2. 感覺上,從「症狀」看起來,應該是單一 mapper 記憶體不夠的機率蠻高的。若記憶體不是很高,先試試看單機模式 + 提高 mapper 個數吧。單機模式就只有 LocalRunner 了,因為只有用本機檔案系統,所以不會有找不到 Block 的問題,不會有連 socket 的問題。而且可以用 jconsole 連上特定 Java PID 去觀察記憶體用量變化,可以做某種程度的 profiler 啦~對於您了解程式記憶體用量的特徵會有幫助。

- Jazz


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

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


誰在線上

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


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

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