背景: node
單節點運行hadoop全部組件(namenode,datanode,jobtracker,tasktarcker等)運行任務後,全部任務卡死,沒法繼續運行。使用oozie管理job。 服務器
分析: oop
查看hadoop日誌並無發現錯誤,所以,懷疑配置文件出現問題。逐步檢查配置文件出現問題的地方。首先,檢查服務器負載境況,發現服務器cpu使用率低於20%,內存佔用不足50%,硬盤io tps 小於3。機器負載不重。能夠分析出,hadoop中的任務卡死,不是因爲硬件資源不足致使的。換句話說,就是hadoop的其餘設置致使的。從而檢查hadoop的配置文件中配置是否合理。檢查hadoop的conf/hadoop-env.sh。發現 日誌
HADOOP_HEAPSIZE的值爲8192; xml
代表hadoop各個組件啓動時,分配的內存足夠大。不存在內存分配不足的問題。接着查看其餘值發現沒什麼特殊的地方。使用jps查看chind數量,發現有4個,檢查配置文件中的conf/mapred-site.xml,其中mapred.tasktracker.map.tasks.maximum的值剛好是4,代表tasktracker的chind中map的數量最可能是4個,而後確認了下job開始的位置,發現就是在執行map的時候開始,說明同時執行4個map時,發生競爭,致使任務不能進行下去,修改其值爲合適大小(網上說能夠修改成任務數/cpu核心數=1~2之間),從新模擬,克服死鎖,問題成功解決。 內存