分布式计算框架Map,Reduce

一.MapReduce是什么?"Map(映射)"和"Reduce(归约)

        1.它是一种编程模型(一般是体系比较强的东西),是面向大数据并行处理的模型,框架,和平台.

        2.是一个基于集群的高性能并行计算平台

        3.是一个并行计算与运行的软件框架

        4.是一个并行程序设计模型与方法

并行和并发的区别和练习?

        联系:都是多个主体同时参与工作一件事,提高工作效率

        区别:共行是多个主题同时去做

        并发是多个主体看上去是同时,实际是有先后顺序的.

二.MapReduce基本特点?

        1.分步可靠,

        2.封装了实现的细节,基于框架的api

        3.提供了跨语言编程的能力

三.MapReduce的主要功能?

        1.数据划分和计算任务的调度

               划分为多个数据块,

        2.数据/代码互相定位

        3.系统优化

                减少数据通信的开销

        4.出错检测和回复

                假如有一个坏了需要调度其他的jar继续计算

四.MapReduce的运行流程?(集群分主从,主备,无中心集群)

        1.提交数据代码,对输入的数据源进行切片

        2.master执行调度woker执行,map打散任务

        3.worker当中的map任务读取输入源切片

        4.worker执行map任务,将任务输出保存在本地

        5.master执行调度worker执行reduce聚合任务,reduce worker读取map任务的输出文件

        6.执行reduce聚合任务,将该任务的输出保存到HDFS

 

五.MapReduce java API

WordCount

1.map类的编写:

1>.继承Mapper:是MapReduce计算框架中Map过程的封装

2>.创建Text:用于hdoop对文本字符串的处理

3>.创建IntWritable:用于hdoop对整形的处理

4>.覆写核心map方法,逐个<k,v>处理

5>.用StringTokenizer初始化字符串,并以什么分割,默认为空格

6>循环读取每个元素,并将每个元素放到 Text中,通过context对象 将map的输出逐个输出

2.reduce类编写:

1>.继承Reducer:Reducer:是MapReduce额度侧计算框架Reduce过程的封装

2>.核心rerduce方法具体实现,逐个处理

3>.创建一个变量用来接受计算总和

4>.加强for型for循环,获取迭代器中的元素,将key组中的每个词的频数加起来

5>.将总和放到result IntWritable中,使可以输出结果

6>.通过context对象 将map的输出逐个输出

3.Driver类的编写

1>启动driver方法,获取集群的配置参数

2>设置到job中

3>指定本次执行的主类,指定map类,combiner类,reducer类

4>指定job输出的key和value的类型

5>.指定输入输出的路径,输出路径一定不存在

6>.指定job的执行模式.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值