【MapReduce概述及常用的数据序列化类型】

MapReduce 概述

MapReduce 是一个分布式运算程序的编程框架。

核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

优点:

  1. 易于编程。用户只关心,业务逻辑。实现框架的接口。
  2. 良好扩展性,可以动态增加服务器,解决计算资源不够的问题。
  3. 高容错性。任何一台机器挂掉,可以将任务转移到其他节点。
  4. 适合海量数据的计算(TB/PB)。几千台服务器共同计算。

缺点:

  1. 不擅长实时计算
  2. 不擅长流式计算。spark streaming 和 flink 可以。
  3. 不擅长 DAG 有向无环图计算。spark 可以。

1)MapReduce 运算一般需要分成 2 个阶段:

​ Map 阶段和 Reduce 阶段。

2)Map 阶段的并发 MapTask,完全并行运行,互不相干。

3)Reduce 阶段的并发 ReduceTask,完全不相干,但是它们的数据依赖于上一个阶段所有 MapTask 并发实例的输出。

4)MapReduce 编程模型只能包含一个 Map 阶段和一个 Reduce 阶段,如果用户的业务逻辑非常复杂,那就只能多个 MapReduce 程序,串行运行。

MapReduce 进程

1) MrAppMaster:负责整个程序的过程调度及状态协调。

2)MapTask:负责 Map 阶段的整个数据处理流程。

3)ReduceTask 负责 Reduce 阶段的整个数据处理流程。

常用的数据序列化类型

Java 类型Hadoop Writable 类型
BoolbeanBooleanWritable
ByteByteWritable
IntIntWritable
FloatFloatWritable
DoubleDoubleWritable
StringText
MapMapWritable
ArrayArrayWritable
NullNullWritable
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值