首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用mapreduce实现hadoop聚类的自适应合并

如何利用mapreduce实现hadoop聚类的自适应合并
EN

Stack Overflow用户
提问于 2017-03-30 18:21:04
回答 1查看 399关注 0票数 0

我希望在hadoop多项式集群上实现自适应的合并排序,这样可以减少运行时间。但据我所知,地图本身是进行排序和分组的。我的意思是,映射输出是减少的输入,我们得到的映射的输出是排序的(如果我没有错)。那么,如何实现自适应合并排序呢?我是说这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-01 21:52:52

在地图减少程序中,如果你想在地图输出上应用你的排序逻辑,那么还原器将按某种排序顺序得到数据,你需要做以下事情

  1. 选择您的组合键
  2. 设置排序比较器类
  3. 集合分组比较器类
  4. 集分区类

例如,如果您有如下所示的数据集

UserID,ApplicationId,日期时间

如果您想根据userid和Datetime对行进行排序

首先,您需要创建一个由userid和datetime组成的复合键类。

其次,您需要编写排序比较器类,其中需要写入排序逻辑。

第三,您需要编写分组比较器类,在这个类中,要根据一个键(而不是两个键)比较键的值,就像在这个示例中,我们只想用userid对记录进行分组。

第四,您需要创建分区类,其中需要编写逻辑,以便将相同userid的数据发送到相同的还原器。

最后,您需要在作业实例下设置所有类。

代码语言:javascript
复制
job.setSortComparatorClass(YourSortComparator.class);
job.setGroupingComparatorClass(YourGroupingComparator.class);
job.setPartitionerClass(YourPartitioner.class);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43125581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档