Hadoop的split和block的區別和聯絡

2021-10-04 21:59:14 字數 791 閱讀 6443

hadoop在預設的情況下,split和hdfs的block的大小是一樣的,這樣容易造成誤解認為兩者是一樣的,下面說下兩者的區別和聯絡:

split是mapreduce裡的概念,是切片的概念,split是邏輯切片 ;而block是hdfs中切塊的大小,block是物理切塊;

split的大小在預設的情況下和hdfs的block切塊大小一致,為了是mapreduce處理的時候減少由於split和block之間大小不一致,可能會完成多餘的網路之間的傳輸。

可以通過配置檔案進行設定:

–minsize 預設大小為1mapreduce.input.fileinputformat.split.minsize

–maxsize 預設大小為long.maxvalue mapreduce.input.fileinputformat.split.maxsize

在mapreduce的fileinputformat類中有個getsplits() 方法對檔案進行split,演算法如下:

math.max(minsize,math.min(maxsize, blocksize));其中maxsize是取得lon**aluemax的值

1.如果blocksize小於maxsize && blocksize 大於 minsize之間,那麼split就是blocksize;

2.如果blocksize小於maxsize && blocksize 小於 minsize之間,那麼split就是minsize;

3.如果blocksize大於maxsize && blocksize 大於 minsize之間,那麼split就是maxsize;

Hadoop的split和block的區別和聯絡

hadoop在預設的情況下,split和hdfs的block的大小是一樣的,這樣容易造成誤解認為兩者是一樣的,下面說下兩者的區別和聯絡 1.split是mapreduce裡的概念,是切片的概念,split是邏輯切片 而block是hdfs中切塊的大小,block是物理切塊 2.split的大小在預設...

給Oracle新增split和splitstr函式

最近專案中有很多需要做批量操作的需求,客戶端把一組逗號分隔的id字串傳給資料庫,儲存過程就需要把它們分割,然後逐個處理。以往的處理方式有如下幾種 1 在儲存過程內寫迴圈,逐個分析字串中的id,然後逐個處理。缺點 迴圈一次處理乙個,如果每次判斷都很多,效率將很受影響。適合每次處理要做單獨判斷的情況。2...

block和split的理解

兩者是從不同的角度來定義的 hdfs以固定大小的block為基本單位儲存資料 分布式檔案系統,實際儲存角度,物理儲存單位 而mapreduce以split作為處理單位 程式設計模型角度,邏輯單位 對於檔案中的一行記錄,可能會劃分到不同的block中,也可能劃分到不同的split中。split是邏輯上...