MapReduce

一、MapReduce的分布式计算框架原理
mapreduce它是一种编程模型,用于大规模数据集(大于1TB)的并行运算
概念:map(映射) reduce(归约) 是它们的主要思想 都是从函数式编程语言借来的和矢量编程 语言借来的,极大的方便了编程人员在不会分布式并行编程的情况下,让程序运行在分布式系统上,当前实现的是把map函数中的键值对映射成新的键值对,指定并发的reduce函数,保证所有映射的键值对中的每一个共享相同的键组。
二、提供的主要功能
1.数据划分、计算任务调度
2.数据代码互定位
3.系统优化
4.出错检测和恢复
三、combiner的作用
对map task的输出进行合并 减少reduce的负载情况,提高效率。

注意:combine的输入和reduce的完全一致,输出和map的完全一致
使用注意:
对于Combiner有几点需要说明的是:
1)有很多人认为这个combiner和map输出的数据合并是一个过程,其实不然,map输出的数据合并只会产生在有数据spill出的时候,即进行merge操作。
2)与mapper与reducer不同的是,combiner没有默认的实现,需要显式的设置在conf中才有作用。
3)并不是所有的job都适用combiner,只有操作满足结合律的才可设置combiner。combine操作类似于:opt(opt(1, 2, 3), opt(4, 5, 6))。如果opt为求和、求最大值的话,可以使用,但是如果是求中值的话,不适用。
4)一般来说,combiner和reducer它们俩进行同样的操作。

四、简述一下shuffle过程中分区
mapreduce提供partitioner接口 他的作用是根据key或者value以及reduce的数量最终应该交由哪个reduce task处理 默认情况是 hashpartitioner 默认对key hash后再以reduce task数量取模 。

五、简述Combiner和partition的作用
combiner分为map端和reduce端 作用是把同一个key的键值对合并一起,可以自定义的。
combiner函数吧一个map函数产生 的对多个(key value)合并成一个新的 再将新的键值对作为输入到reduce函数中这个value2也可称之为values 因为有多个这个合并的目的是为了见少网络传输
2)partition 是分割map每个节点的结果 按照key分别映射给不同的reduce 也可以自定义 这里其实可以理解为归类

六、简述mapreduce不适合对那些场景使用?
1)MapReduce 不适合做低延迟数据访问
2)不适合存储大量的小文件
3)不支持多用户写入及任意修改文件
七、常用数据类型
LongWritable—long
Text-----String
ByteWritable—byte
ShortWritable—short
IntWritable----int(integer)
FloatWritable—float
BooleanWritable—boolean
NullWritable—null
DoubleWritable—double

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值