Hadoop的split和block的區別和聯絡

2021-08-14 12:08:00 字數 921 閱讀 6930

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

1. split是mapreduce裡的概念,是切片的概念,split是邏輯切片

;而block是hdfs中切塊的大小,block是物理切塊;

2. 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是取得longvaluemax的值

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

給Oracle新增split和splitstr函式

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

block和split的理解

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