分享

如果我想控制mapreduce匹配数据的条目数该如何实现

dsy198816 发表于 2016-12-29 16:10:00 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 7796
因为是多个map,reduce 并行,我只想输出10条结果。

已有(10)人评论

跳转到指定楼层
langke93 发表于 2016-12-29 16:37:01
这样的话,可以有多个map,只能有一个reduce。也就是所有的map数据都流向一个分区即可。
回复

使用道具 举报

dsy198816 发表于 2016-12-29 16:41:29
reduce不是也有多个嘛?
回复

使用道具 举报

dsy198816 发表于 2016-12-29 16:42:00
多个reduce怎么办呢? 没有配置什么的控制吗?
回复

使用道具 举报

langke93 发表于 2016-12-29 16:45:33
dsy198816 发表于 2016-12-29 16:41
reduce不是也有多个嘛?

reduce多个就不好控制了,目前还没见过。
回复

使用道具 举报

dsy198816 发表于 2016-12-29 17:27:49
就算一个reduce好伐。。。。。数据流map,都全部处理一遍了,我只需要10条有用数据,在reduce这里限制还有啥意义?   和处理1万条有用数据,性能有啥区别。。

点评

可以尝试都放到map里面  发表于 2016-12-30 12:58
回复

使用道具 举报

langke93 发表于 2016-12-29 18:03:03
dsy198816 发表于 2016-12-29 17:27
就算一个reduce好伐。。。。。数据流map,都全部处理一遍了,我只需要10条有用数据,在reduce这里限制还有啥 ...

如果你只需要10条,那你就输入10条啊。
如果你从多少条里面,那你就必须都得处理一遍。看你的需求。
如果你让100人比赛,你要前10名,那你得100人都得比赛啊。
你要从这里数据里面赛选,同理你也得都处理一遍啊。要不你怎么知道是前10,除非你随机。就输出10个就ok了
回复

使用道具 举报

dsy198816 发表于 2017-1-2 17:16:39
我的问题是 匹配输入有100万条, 根据匹配条件会有10万条匹配上,但是我想mapreduce匹配到了10条就不要再继续匹配了
回复

使用道具 举报

arsenduan 发表于 2017-1-2 21:09:15
dsy198816 发表于 2017-1-2 17:16
我的问题是 匹配输入有100万条, 根据匹配条件会有10万条匹配上,但是我想mapreduce匹配到了10条就不要再继 ...

可以这样,无论是使用reduce,还是不使用reduce。
在分配任务后,任何一个task在运算得到10条的时候,可以通过shel或则Java代码停止job的执行
回复

使用道具 举报

dsy198816 发表于 2017-1-3 09:51:37
arsenduan 发表于 2017-1-2 21:09
可以这样,无论是使用reduce,还是不使用reduce。
在分配任务后,任何一个task在运算得到10条的时候,可 ...

但是肯定是有多个task的,每一个task得到10条的时候,终止? 这样也没办法保证一共只匹配了10条吧?能否讲的详细点?感谢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条