謝謝您的回覆!
安裝 hadoop 的電腦記憶體為 16G
想請問關於記憶體部分需調整 mapred-site.xml 的 mapred.child.java.opts 參數
或 hadoop-env.sh 的 export HADOOP_HEAPSIZE 還是其他檔案參數調整呢?
程式也無跳出記憶體不足的 error 顯示
我是照 Hadoop4Win 安裝,Cygwin 部分有限制記憶體的部分需調整嗎?
MyInputFormat 是從 TextInputFormat 源碼修改 ,只將 Key 改為檔名,及 InputSplit 回傳 false
是希望一個檔案是產生一個 mapper 處理,每一檔案都小於Block size
只讀取一行是由於之前發現 TaskTracker 會不斷離線,擔心是程式有死迴圈狀況,所以單純 Map 在讀取檔案第一行後印出檔名,
目的想觀察 TaskTracker 會不會還是一直離線
這樣需做何處理才不會導致Cache 記憶體塞滿呢?
關於 mapper 輸出,若改 Context.write(null,null) 想達到 Mapper 無輸出,會比原先無呼叫 Context.write() 好嗎?
觀察離線的 TaskTracker , Child Java process 還是在執行,但由windows 工作管理員觀看CPU使用率近 0% 與記憶體量也很低
由離線的 TaskTracker Log 看
成功執行的task代碼:
2013-03-30 14:56:39,779 INFO org.apache.hadoop.mapred.TaskTracker: LaunchTaskAction (registerTask): attempt_201303301425_0002_m_000014_0 task's state:UNASSIGNED
2013-03-30 14:56:39,779 INFO org.apache.hadoop.mapred.TaskTracker: Trying to launch : attempt_201303301425_0002_m_000014_0
2013-03-30 14:56:40,090 INFO org.apache.hadoop.mapred.TaskTracker: In TaskLauncher, current free slots : 1 and trying to launch attempt_201303301425_0002_m_000014_0
2013-03-30 14:56:41,433 INFO org.apache.hadoop.mapred.TaskTracker: JVM with ID: jvm_201303301425_0002_m_-545198583 given task: attempt_201303301425_0002_m_000014_0
2013-03-30 14:56:49,379 INFO org.apache.hadoop.mapred.TaskTracker: attempt_201303301425_0002_m_000014_0 0.8121404%
2013-03-30 14:56:51,121 INFO org.apache.hadoop.mapred.TaskTracker: Task attempt_201303301425_0002_m_000014_0 is in commit-pending, task state:COMMIT_PENDING
2013-03-30 14:56:51,121 INFO org.apache.hadoop.mapred.TaskTracker: attempt_201303301425_0002_m_000014_0 0.8121404%
2013-03-30 14:56:52,223 INFO org.apache.hadoop.mapred.TaskTracker: Received commit task action for attempt_201303301425_0002_m_000014_0
2013-03-30 14:56:52,382 INFO org.apache.hadoop.mapred.TaskTracker: attempt_201303301425_0002_m_000014_0 0.9988352%
2013-03-30 14:56:53,226 INFO org.apache.hadoop.mapred.TaskTracker: attempt_201303301425_0002_m_000014_0 0.9988352%
2013-03-30 14:56:53,228 INFO org.apache.hadoop.mapred.TaskTracker: Task attempt_201303301425_0002_m_000014_0 is done.
2013-03-30 14:56:53,228 INFO org.apache.hadoop.mapred.TaskTracker: reported output size for attempt_201303301425_0002_m_000014_0 was 0
2013-03-30 14:56:55,222 INFO org.apache.hadoop.mapred.TaskTracker: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find taskTracker/jobcache/job_201303301425_0002/attempt_201303301425_0002_m_000014_0/output/file.out in any of the configured local directories
卡住的task代碼:
2013-03-30 14:58:04,783 INFO org.apache.hadoop.mapred.TaskTracker: LaunchTaskAction (registerTask): attempt_201303301425_0002_m_000085_0 task's state:UNASSIGNED
2013-03-30 14:58:04,783 INFO org.apache.hadoop.mapred.TaskTracker: Trying to launch : attempt_201303301425_0002_m_000085_0
2013-03-30 14:58:05,143 INFO org.apache.hadoop.mapred.TaskTracker: In TaskLauncher, current free slots : 1 and trying to launch attempt_201303301425_0002_m_000085_0
2013-03-30 14:58:06,347 INFO org.apache.hadoop.mapred.TaskTracker: JVM with ID: jvm_201303301425_0002_m_-150518350 given task: attempt_201303301425_0002_m_000085_0
2013-03-30 14:58:12,916 INFO org.apache.hadoop.mapred.TaskTracker: Task attempt_201303301425_0002_m_000085_0 is in commit-pending, task state:COMMIT_PENDING
2013-03-30 14:58:12,916 INFO org.apache.hadoop.mapred.TaskTracker: attempt_201303301425_0002_m_000085_0 0.0%
2013-03-30 14:58:13,788 INFO org.apache.hadoop.mapred.TaskTracker: Received commit task action for attempt_201303301425_0002_m_000085_0
2013-03-30 14:58:13,982 INFO org.apache.hadoop.mapred.TaskTracker: attempt_201303301425_0002_m_000085_0 0.9979442%
2013-03-30 14:58:13,983 INFO org.apache.hadoop.mapred.TaskTracker: Task attempt_201303301425_0002_m_000085_0 is done.
2013-03-30 14:58:13,983 INFO org.apache.hadoop.mapred.TaskTracker: reported output size for attempt_201303301425_0002_m_000085_0 was 0
其中
INFO org.apache.hadoop.mapred.TaskTracker: org.apache.hadoop.util.DiskChecker$DiskErrorException:
這好像不對 task 執行有影響
卡住的task 反而無顯示上行訊息,看不出有其他Error訊息
希望大家能提供意見,謝謝!