我通過將輸入文件分為四份使得hadoop程序運行時有四個map,但是我無法確定到底哪個map在哪個節(jié)點上運行。Web UI顯示如下:我的集群nodeManager有兩個,這里好像表明四個map都運行在了centos2節(jié)點上。試了多次都是同一個結(jié)果。為什么map任務不能分配到多個節(jié)點上呢?還有,我的配置文件基本上是默認的,也就是說mapreduce.job.maps為默認值2, mapreduce.tasktracker.map.tasks.maximum也為默認值2, 個人覺得一個設置了每個job的task數(shù)為2, 一個設置了每個tasktracker(每個節(jié)點)的任務數(shù)不超過2,不可能存在一個節(jié)點上四個map的情況啊?這兩個配置參數(shù)究竟是如何影響程序的?
1 回答

侃侃爾雅
TA貢獻1801條經(jīng)驗 獲得超16個贊
1.首先,你不能確定map運行在哪個機器上,hadoop有內(nèi)部有算法決定。其實你可以通過
hadoop job -list-active-trackers
看看tasktracker是不是都正常
2.為什么有4個map任務呢?一個map分為不同階段,比如SETUP、CLEANUP,所以其中兩個attempt對應這兩個,其余兩個才是真正的map邏輯。
- 1 回答
- 0 關(guān)注
- 1468 瀏覽
添加回答
舉報
0/150
提交
取消