Hadoop 全序分区

Hadoop Total order Partitioning

为什么在 hadoop 中进行 total total order 分区?。哪些场景需要进行全序划分?我的理解是在多个 reducer 之后,每个 reducer 结果都会被 key 排序。那么为什么我们需要进行总订单划分。如果您可以分享任何图形代表,那就太好了。例子?

总顺序分区将在所有 个减速器中按键对输出进行排序。这允许您组合多个 reducer 的输出并仍然获得排序的输出。下面的简单示例:

无总订单划分

reducer 1's output: 
(a,val_a)
(m,val_m)
(x,val_x)

reducer 2's output: 
(b,val_b)
(c,val_c)

如果合并,输出将不再按键排序。

(a,val_a)
(m,val_m)
(x,val_x)
(b,val_b)
(c,val_c)

总订单划分

reducer 1's output: 
(a,val_a)
(b,val_b)
(c,val_c)

reducer 2's output: 
(m,val_m)
(x,val_x)

如果合并,输出仍然按键排序。

(a,val_a)
(b,val_b)
(c,val_c)
(m,val_m)
(x,val_x)