2012-07-08 84 views

回答

3

HDFS塊是字節序列。他們不知道線路或任何其他結構。 因此,您可能只有一個由一行(即不包括整行最後一行)結尾的塊(當然大小爲64MB)組成的分割。當您使用TextInputFormat讀取它時,它會小心地從下一個塊中讀取一些字節,以便您也獲得整個最後一行。

+0

所以我可以說分割大小不是恆定的? – FourOfAKind 2012-07-08 00:27:42

+0

是的,你可以這麼說。 – Razvan 2012-07-08 00:38:16

+0

那麼,爲什麼在上述場景中拆分大小不是恆定的?除了最後一個塊,分割應該是64MB。需要注意的一點是,即使記錄可能跨越塊,這由Hadoop框架處理,並且對最終用戶而言是透明的。 – 2012-07-08 04:19:31

1

始終遵循2個規則:

  1. 確定您在記錄
  2. 可以中旬在該記錄和讀取下一個完整記錄

備案上半年作爲之前InputSplit的最後一條記錄

相關問題