首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hadoop之MapReduce的基本概念01

1. MapReduce 的概念

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

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

2. 为什么要 MapReduce

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

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

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

(4) mapreduce 分布式方案考虑的问题

A、运算逻辑要不要先分后合?

B、程序如何分配运算任务(切片)?

C、两阶段的程序如何启动?如何协调?

D、整个程序运行过程中的监控?容错?重试?

分布式方案需要考虑很多问题,但是我们可以将分布式程序中的公共功能封装成框架,让开发人员将精力集中于业务逻辑上。而 MapReduce 就是这样一个分布式程序的通用框架。

3. MapReduce 的核心思想

上图简单的阐明了 map 和 reduce 的两个过程或者作用,虽然不够严谨,但是足以提供一个大概的认知,map 过程是一个蔬菜到制成食物前的准备工作,reduce 将准备好的材料合并进而制作出食物的过程。

(1) 分布式的运算程序往往需要分成至少2个阶段;

(2) 第一个阶段的 maptask 并发实例,完全并行运行,互不相干;

(3) 第二个阶段的 reduce task 并发实例互不相干,但是他们的数据依赖于上一个阶段的所有 maptask 并发实例的输出;

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

本文是在本人在学习 Hadoop 时的总结归纳和笔记,如果觉得对你有帮助,不要忘了点赞,评论,转发哟!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190116G1CEEQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券