的Hadoop權威指南說:輸入拆分大小是常量還是取決於邏輯記錄?
When you have Minimum split size 1, Maximum split size Long.MAX_VALUE, Block
size 64MB then the Split size is 64MB.
的TextInputFormat的邏輯記錄行。由於每一行的長度不同,我們如何才能將大小分割爲64MB?
的Hadoop權威指南說:輸入拆分大小是常量還是取決於邏輯記錄?
When you have Minimum split size 1, Maximum split size Long.MAX_VALUE, Block
size 64MB then the Split size is 64MB.
的TextInputFormat的邏輯記錄行。由於每一行的長度不同,我們如何才能將大小分割爲64MB?
HDFS塊是字節序列。他們不知道線路或任何其他結構。 因此,您可能只有一個由一行(即不包括整行最後一行)結尾的塊(當然大小爲64MB)組成的分割。當您使用TextInputFormat讀取它時,它會小心地從下一個塊中讀取一些字節,以便您也獲得整個最後一行。
始終遵循2個規則:
備案上半年作爲之前InputSplit的最後一條記錄
所以我可以說分割大小不是恆定的? – FourOfAKind 2012-07-08 00:27:42
是的,你可以這麼說。 – Razvan 2012-07-08 00:38:16
那麼,爲什麼在上述場景中拆分大小不是恆定的?除了最後一個塊,分割應該是64MB。需要注意的一點是,即使記錄可能跨越塊,這由Hadoop框架處理,並且對最終用戶而言是透明的。 – 2012-07-08 04:19:31