2016-11-14 35 views
0

我面臨與Teradata導出(批量插入)作業相關的任務嘗試失敗,出現以下錯誤。
將數據導出到Oracle等的其他作業運行良好。

Task attempt_1234_m_000000_0 failed to report status for 600 seconds. Killing!, java.lang.Throwable: Child Error at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:250) Caused by: ExitCodeException exitCode=255: at org.apache.hadoop.util.Shell.runCommand(Shell.java:543) at org.apache.hadoop.util.Shell.run(Shell.java:460) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:707) at org.apache.hadoop.mapred.LinuxTaskController.createLogDir(LinuxTaskController.java:313) at org.apache.hadoop.mapred.TaskRunner.prepareLogFiles(TaskRunner.java:295) at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:215)

我也可以看到下面的錯誤消息從任務標準輸出日誌:

"main" prio=10 tid=0x00007f8824018800 nid=0x3395 runnable [0x00007f882bffb000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at com.teradata.jdbc.jdbc_4.io.TDNetworkIOIF.read(TDNetworkIOIF.java:693) at com.teradata.jdbc.jdbc_4.io.TDPacketStream.readStream(TDPacketStream.java:774)

的Hadoop版本:2.5.0的Hadoop-cdh5.3.8將Sqoop導出到Teradata失敗,並顯示錯誤 - 任務嘗試未能報告600秒的狀態。殺死

具體這將是非常有幫助如果你能告訴我爲什麼會發生這個問題? 這是一個與Teradata連接數量限制有關的問題嗎?

+0

你檢查紗線日誌sepecific用戶? –

+0

感謝您的評論。 工作在MR1運行,而不是單紗 – penguin

+0

檢查與在sqoop命令-m 1 ..如果錯誤是由於連接限制,我們可以通過給這個-m 1 –

回答

0

找到了問題的根源:

-Sqoop任務插入約400萬條記錄到Teradata的,因此任務是位長期運行

-The插入查詢,因爲長時間運行的是進入Teradata的延遲qeueue(工作負載管理在Teradata的端 - 由數據庫管理員設置),因此sqoop MapReduce的任務不從Teradata的獲取響應來回600個sec.s

- 由於默認任務超時600秒,該交易是由地圖中止。任務導致任務失敗

編號:http://apps.teradata.com/TDMO/v08n04/Tech2Tech/TechSupport/RoadRules.aspx

解決方案:
1 - 增大TAKS超時在映射精簡端。
2,更改configuartions相關的延遲上的Teradata結束隊列

相關問題