1. 首页
  2. 主题
  3. Go问与答

用go写了个mapReduce的word count程序有疑问,求大神指点

madiks · · 3598 次点击
前两天用go写了一个mapReduce的word count,https://github.com/madiks/goMapReuce,大概设这样设计的: 四个channel:mapIn(接受map任务输入数据),mapOut(写入map任务的结果),reduceIn(将mapOut中的数据取出做分类整合然后写入reduceIn),reduceOut(写入reduce任务的结果)。在两个goroutine分别监听mapIn和reduceIn,一旦收到数据就启一个goroutine去执行map/reduce任务。基于这个写了一个word count。 我的疑问是: 1.假设有海量数据需要处理,不断写入mapIn channel,就会不断启动goroutine去执行任务,可是机器的承载力是有限的,这个程序是否会崩掉? 2.其实我觉得会崩掉的,那么是否要控制写入mapIn时的速度?根据什么控制? 3.也许是我在设计的时候就错了?那么怎样设计才能在面对海量任务时最大地利用当前机器的性能?
David
Life is hard but please enjoy it!
不需要每个数据启动一个 goroutine 吧,若干个 mapper 的 routine 加上若干个 routine 做 reducer 就好了。
#1
更多评论
意思就是控制mapper和reducer的数量,设置最大的并发数?这个两个值怎么确定,凭个人经验吗?
#2
这个跟经验有关系,更主要的是自己根据数据的情况,以及程序的运行情况,不断的调整
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中