MapReduce分布式计算框架

MapReduce适合离线计算

Storm适合流式计算,实时计算


MapReduce——移动计算    不移动数据

移动计算:把写好的计算程序分别拷贝一份到不同的机器上


HDFS上存储的数据,作为MapReduce的输入


每一个片段split,由一个map线程执行   (如何把hdfs上的文件切分成split,按照怎样的规则去切分)



例子 word count


shuffling阶段是mapper和reducer中间步骤

可以吧mapper的输出按照某种key,value重新切分和组合成n份,把key值符合某种范围的输出送到特定的ereducer去处理,可以简化reducer过程

                                                   分区、排序、溢写到磁盘,由于map输出的结果存在内存中,内存有溢值,超过这个值,就写到磁盘中


默认分区partition方式是:哈希摸运算,模reduce的个数。partition把map的数据分成一块块区域,每一个区域对应一个reduce去执行

reduce阶段的“数据倾斜”,整数模reduce的个数之后,得到的0或1的数量不同,可能产生数据倾斜。

为避免数据倾斜,需要更改partition规则,重新定义分区方式


默认排序sort方式是:按照对象对应的ask码排序————字典排序


merge步骤为了减少map阶段网络输出


shuffle过程详解:

——每个map task都有一个内存缓冲区(默认100MB),存储map的输出结果

——缓冲区快满的时候,需要将缓冲区的数据以一个临时文件的方式存到磁盘(spill溢写 to disk)

——溢写由单独线程完成,不影响往缓冲区写map结果的线程

——当溢写线程启动后,需要对着80MB空间内的key排序(sort)


MapReduce的主从结构

主:JobTracker(随意指定)

从:TaskTracker


以71机器作为JobTracker,在71机器上修改配置文件


再把配置文件同步到其他机器


启动mapreduce

71机器


72机器

访问


通过eclipse插件,连接HDFS,以下是eclipse插件的源码所在位置




http://my.oschina.net/allman90/blog/296841跑wordcount,参考参考,谢谢分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值