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)
为什么在 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)