1.分區(qū)涉及到的是多個(gè)reduceTask
如果只有1個(gè)或0個(gè) , 那么就不存在分區(qū)
1.在沒(méi)有自定義分區(qū)的時(shí)候,系統(tǒng)采用的 Hash分區(qū)
假如 1- 50000的數(shù) 2000個(gè)
兩個(gè)區(qū)內(nèi),
一個(gè)區(qū)的所有數(shù)并不會(huì)比另一個(gè)區(qū)全部大 , 而是散列的,雖然是有序的
記住 ,到達(dá)每個(gè)reduce的數(shù)都是有序 ,但是不保證全局有序
局部有序
這個(gè)時(shí)候需要自定義分區(qū) , 繼承 partitioner , 設(shè)為
1-25000 : part-00000
25000-- : part-00001
這個(gè)時(shí)候我們才可以說(shuō) 1區(qū)的最小值 , 比0區(qū)所有的都要大
但是這樣做需要考慮的是 , 如果數(shù)據(jù)在很大
比如 300T
你需要抽樣 , 看分布 , 不然很可能一個(gè)區(qū)分到10T , 另一個(gè)區(qū)分到 100T的情況
分區(qū)的目的是為了壓力分布均勻.
就好比兩個(gè)人挑100斤的東西 , 你讓其中一個(gè)人180 .
另一個(gè)人20斤
那么肯定以最后一個(gè)完成作為基準(zhǔn)