3 }. h v! `$ o# @7 a . A, d" P, D2 _) t3 i S! c# u n3 ?
' e0 Y% A1 q4 c* I# M- G
Hadoop自带的Partitioner的实现有两种,一种为HashPartitioner, 默认的分区方式,计算公式 hash(key)%reducernum,另一种为TotalOrderPartitioner, 为排序作业创建分区,分区中数据的范围需要通过分区文件来指定。% L8 ^3 i- f- u
* d, s# Y1 e8 A3 K & F; J# q7 i# N: y7 e ! {4 Z& V* h' J. G& ?
5 P, S# B8 d+ r9 x: y7 x
, V2 R x+ N6 Y
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系: L) w' `5 `1 U5 P
; y: O ?% U+ o+ G# t7 D. R( F+ v( u& w% R* I6 a
分区文件可以人为创建,如采用等距区间,如果数据分布不均匀导致作业完成时间受限于个别reduce任务完成时间的影响。 ! h( v y+ B% r0 @ . ~+ G- I/ l, Y* h6 T 4 K1 K" ~8 j; D9 v8 g" ?% u也可以通过抽样器,先对数据进行抽样,根据数据分布生成分区文件,避免数据倾斜。- J9 a& d4 Y9 N1 h; q9 T6 w
) l& i9 x/ m- C