3 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
舉例說(shuō)明:
假設(shè)您的hadoop輸入文件大小為2 GB,并且將塊大小設(shè)置為64 MB,因此將設(shè)置運(yùn)行32個(gè)Mappers任務(wù),而每個(gè)映射器將處理64 MB塊以完成Hadoop作業(yè)的Mapper作業(yè)。
==>設(shè)置要運(yùn)行的映射器的數(shù)量完全取決于1)文件大小和2)塊大小
假設(shè)您在4個(gè)集群大小上運(yùn)行hadoop:假設(shè)您將conf文件中的mapred.map.tasks和mapred.reduce.tasks參數(shù)設(shè)置為節(jié)點(diǎn),如下所示:
Node 1: mapred.map.tasks = 4 and mapred.reduce.tasks = 4
Node 2: mapred.map.tasks = 2 and mapred.reduce.tasks = 2
Node 3: mapred.map.tasks = 4 and mapred.reduce.tasks = 4
Node 4: mapred.map.tasks = 1 and mapred.reduce.tasks = 1
假設(shè)您為該集群中的4個(gè)節(jié)點(diǎn)設(shè)置了上述參數(shù)。如果您注意到節(jié)點(diǎn)2分別只設(shè)置了2和2,因?yàn)楣?jié)點(diǎn)2的處理資源可能較少,例如(2個(gè)處理器,2個(gè)內(nèi)核),而節(jié)點(diǎn)4甚至分別設(shè)置為分別低到1和1,可能是由于處理資源該節(jié)點(diǎn)上有1個(gè)處理器,2個(gè)內(nèi)核,因此不能運(yùn)行超過(guò)1個(gè)mapper和1個(gè)reducer任務(wù)。
因此,當(dāng)您運(yùn)行作業(yè)時(shí),將節(jié)點(diǎn)1,節(jié)點(diǎn)2,節(jié)點(diǎn)3,節(jié)點(diǎn)4配置為運(yùn)行最大作業(yè)。在作業(yè)需要完成的42個(gè)映射器任務(wù)中,總共(4 + 2 + 4 + 1)11個(gè)映射器任務(wù)同時(shí)進(jìn)行。每個(gè)節(jié)點(diǎn)完成其映射任務(wù)后,它將處理42個(gè)映射器任務(wù)中剩余的其余映射器任務(wù)。
現(xiàn)在開(kāi)始使用reducers,因?yàn)閷apred.reduce.tasks設(shè)置為0,所以我們僅將mapper輸出輸出到42個(gè)文件中(每個(gè)mapper任務(wù)1個(gè)文件),而沒(méi)有reducer輸出。
添加回答
舉報(bào)