2
據我所知,一個映射器將被分配一個分割。發生什麼事情時,我設置拆分大小大於mapreduce框架中的實際塊大小?
但是,當我把拆分尺寸大於實際的塊尺寸會發生什麼?
例如:如果我把塊大小= 128 Mb和分割大小= 130 Mb,在這種情況下將會運行多少個映射器。它是一個映射器還是多於一個映射器?
據我所知,一個映射器將被分配一個分割。發生什麼事情時,我設置拆分大小大於mapreduce框架中的實際塊大小?
但是,當我把拆分尺寸大於實際的塊尺寸會發生什麼?
例如:如果我把塊大小= 128 Mb和分割大小= 130 Mb,在這種情況下將會運行多少個映射器。它是一個映射器還是多於一個映射器?
它可以設置分割大小超過塊大小。但是在這種情況下,得到一個分割映射器應該從hdfs中讀取幾個塊,這可能導致網絡傳輸,因爲塊n和塊n + 1可能不在一個datanode中。
在你的例子中,如果你設置splitsize = 130mb,並且你的輸入數據是一個130mb文件,那麼你將有1個映射器。
因此,在這種情況下,一個映射器只會讀取第一個128 MB數據,然後再讀取剩餘的2 MB數據。否則它會一次讀取整個130MB的數據? –
你的'一次'是什麼意思? – fi11er
我的意思是在同一時間。 –