Advertisement

MapReduce的全局排序

阅读量:

一、核心概念界定

在数据进入map端之前,全局排序方法通过对数据进行随机抽样,并在所抽取的样本中确定分界点,从而依据这些分界点对数据实施分区处理。

二、核心原理解析

将设定的分隔位置存储于二叉树结构中,每当Map Task生成一个数据项时,均会检索该数据所属的区间范围,从而实现数据分区的目的。

三、易忘点

(1)文件内容中的键值对采用全局排序处理,其格式为通过TAB键进行分隔(如k v);

(2)Mapper函数的输入数据类型为Text与Text组合形式,输出数据类型可自由设定,但需确保与Reduce端的输入数据类型保持一致;

(3)主函数中需完成以下步骤:

  1. 指定分割点的存储路径(例如 String partitionPath="file:/E:/partition",注意本地路径前应添加file:/);

  2. 配置InputFormat阶段所使用的格式化类型(job.setInputFormatClass(KeyValueTextInputFormat.class));

  3. 将分区类设置为全局排序方式(job.setPartitionerClass(TotalOrderPartitioner.class));

  4. 设置分区数量,该数值应与创建随机样本对象时传入的分区数相匹配;

job.setNumRed

全部评论 (0)

还没有任何评论哟~