19 为什么要MAPREDUCE?

简介: 19 为什么要MAPREDUCE?

Mapreduce 是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;

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

为什么需要MAPREDUCE

(1)海量数据在单机上处理因为硬件资源限制,无法胜任。

(2)而一旦将单机版程序扩展到集群来分布式运行,将极大增加程序的复杂度和开发难度。

(3)引入mapreduce框架后,开发人员可以将绝大部分工作集中在业务逻辑的开发上,而将分布式计算中的复杂性交由框架来处理。

设想一个海量数据场景下的wordcount需求:

单机版:

  • 内存受限,磁盘受限,运算能力受限

分布式:

  1. 文件分布式存储(HDFS)
  2. 运算逻辑需要至少分成2个阶段(一个阶段独立并发,一个阶段汇聚)
  3. 运算程序如何分发
  4. 程序如何分配运算任务(切片)
  5. 两阶段的程序如何启动?如何协调?
  6. 整个程序运行过程中的监控?容错?重试?

可见在程序由单机版扩成分布式时,会引入大量的复杂工作。为了提高开发效率,可以将分布式程序中的公共功能封装成框架,让开发人员可以将精力集中于业务逻辑。

而mapreduce就是这样一个分布式程序的通用框架,其应对以上问题的整体结构如下:

MRAppMaster(mapreduce application master)
MapTask
ReduceTask


目录
相关文章
|
分布式计算 数据处理
38 MAPREDUCE中的其他应用
38 MAPREDUCE中的其他应用
62 0
|
分布式计算
37 MAPREDUCE中的DistributedCache应用
37 MAPREDUCE中的DistributedCache应用
44 0
|
数据采集 机器学习/深度学习 存储
E-MapReduce
E-MapReduce(简称EMR)是阿里云提供的一项大数据处理服务,它基于开源的 Apache Hadoop 和 Apache Spark 构建,并提供了易于使用的 Web 界面和 API 接口,方便用户快速创建、调度和管理大数据处理作业。
266 2
|
分布式计算 并行计算 大数据
初识MapReduce
初识MapReduce
95 0
|
缓存 分布式计算 NoSQL
MapReduce(二)
MapReduce(二)
110 0
MapReduce(二)
|
存储 分布式计算 资源调度
|
存储 分布式计算 资源调度
|
存储 缓存 分布式计算
MapReduce —— 历久而弥新(1)
MapReduce —— 历久而弥新(1)
184 0
MapReduce —— 历久而弥新(1)
|
分布式计算 Hadoop Java
MapReduce使用
MapReduce使用
115 0
MapReduce使用
|
存储 分布式计算 监控
MapReduce —— 历久而弥新(2)
MapReduce —— 历久而弥新(2)
151 0