MapReduce的全局排序
发布时间
阅读量:
阅读量
一、核心概念界定
在数据进入map端之前,全局排序方法通过对数据进行随机抽样,并在所抽取的样本中确定分界点,从而依据这些分界点对数据实施分区处理。
二、核心原理解析
将设定的分隔位置存储于二叉树结构中,每当Map Task生成一个数据项时,均会检索该数据所属的区间范围,从而实现数据分区的目的。
三、易忘点
(1)文件内容中的键值对采用全局排序处理,其格式为通过TAB键进行分隔(如k v);
(2)Mapper函数的输入数据类型为Text与Text组合形式,输出数据类型可自由设定,但需确保与Reduce端的输入数据类型保持一致;
(3)主函数中需完成以下步骤:
-
指定分割点的存储路径(例如 String partitionPath="file:/E:/partition",注意本地路径前应添加file:/);
-
配置InputFormat阶段所使用的格式化类型(job.setInputFormatClass(KeyValueTextInputFormat.class));
-
将分区类设置为全局排序方式(job.setPartitionerClass(TotalOrderPartitioner.class));
-
设置分区数量,该数值应与创建随机样本对象时传入的分区数相匹配;
job.setNumRed
全部评论 (0)
还没有任何评论哟~
