当前课程知识点:高级大数据系统 >  MapReduce >  What is MapReduce and why >  Video

返回《高级大数据系统》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《高级大数据系统》慕课在线视频列表

Video课程教案、知识点、字幕

今天我们讲一个重要的大数据处理的模式

叫做MapReduce

那么MapReduce目前被公业界广泛的使用

用来处理大规模的这个数据

用来进行并行的这样一个计算

那么成为了工业界在聊到大数据的时候的

一个实际的行业的一个数据计算的一个标准

那么我们在这一小节中会去介绍什么是MapReduce

以及为什么我们要用MapReduce

来进行数据的一个处理

那么为什么我们要设计专门的

大数据处理的这样一个模式呢

那它的一个背景是这样的

就是说我们有大量的数据需要去处理

那这些数据每天由用户

设备以及各种各样的数据源生成

那么在这样的一个过程中

使得我们在每天 每周

都需要处理海量的一个数据规模

今天对于一个大数据的企业来说

每天处理PB级 TB级

甚至更大的这样一个数据量

实际上是一个非常正常的一个常态

在数据处理的过程中

我们同时还想利用到大量的计算资源

因为我们有大量的服务器

我们有大量的集群

以及很强大的这样一个网络系统

我们想在这样的一个计算

和网络资源的背景下去对数据进行处理

而且整个过程还需要尽可能的简单

因为进行数据处理的这些人员

通常他并不是专业的程序员

或者是系统工程师

他只是普通的行业的这种专家

或者说是市场的这种分析师

那么他们并不具有很好的编程能力

这是为什么我们要让这样的数据处理平台

变得非常的简单的原因

那么通过对大量的这种大规模数据处理模式进行分析

我们就发现实际上大数据它的处理

有一些固定的这样一个模式

那么有哪些模式呢

经过Google以及其他企业的工程师

进行分析之后

对大数据处理的模式进行了一定的归纳

它大概有这样的一些模式

第一个就是说

我们通常需要在数据集上进行

反复迭代的这样一个操作

这对我们日常的这种体验实际上也是正常的

我们可能需要反复的观察一个数据集

反复地对它进行实验

那么在这个过程中通常是有下面的这几个步骤

第一个就是我们从原始的数据中

进行数据的一个提取

那这个过程叫做extract

我们从里面进行数据的一个浏览

然后从里面获取到一部分的我们感兴趣的信息

那么在第二个过程中实际上

我们是需要进行一个sort的过程排序的过程

我们会把感兴趣的信息

进行一定的序列的这样一个排序进行一定的整合

然后使相同类别的数据被放到一块进行处理

后面一步就是进行一个aggregation整合的一个操作

我们通过第一步对数据顺序的一个获取

第二步进行一个排序

第三步进行一个整合

实际上就完成了

我们今天进行的大量的这种数据处理模式的

很大的一部分

而这个模式进行排列组合之后

可以产生非常复杂的数据处理的这样一个流程

最后经过整合之后我们对数据进行输出

那么在这样的一个过程的背景下

那么工程师就开始思考

到底怎么样去设计一个通用的 简单的

而且非常鲁棒的这样一个数据处理的一个模式

那么MapReduce是在这样的背景下提出来的

他是google的工程师

在2000年左右

在我们之前说到的分布式文件系统的基础上给出来的

那MapReduce它是怎么样定义的呢

我们来看一看

首先它的目标是去处理大规模的数据集

那这个数据及会非常的大

那么在最开始的设计的背景下它的目标是要去处理

每天能够超过这个上千pb级的这样一个数据规模

同时他把MapReduce分成了

两个最基本的数据处理的过程

或者叫做单元map和reduce两个阶段

那么在这两个阶段又会需要填充一定的代码

给出一定的功能进行比较单元化的这种数据的操作

那么MapReduce它同时提供了

底层的这样一个系统的支持

并行的这样一个数据处理的一个支持

上层的操作人员程序员

不需要知道底层系统网络和存储是怎样构成的

他就可以让他的任务

在成千上万台服务器上去并发的执行

同时整个系统还需要能够处理各种各样的数据失败

那么这整个过程实际上

它是并行的对于上层的程序员来说是完全透明的

并不需要知道底层发生了什么事情

在整个过程中

我们的这个MapReduce的系统

还要能够处理各种各样的失败

比如说服务器可能会坏掉

硬盘可能会坏掉

那网络可能会不通

在整个过程当中他应该能够非常健壮的生存下去

那么我们来看看MapReduce

它到底有着怎么样的一个结构

以及它的这样一个数据处理的模式是怎么样的

那么MapReduce它的这个结构

实际上是非常的简单的

他是一个这种functional的

这种程序化的一个语言功能程序化的语言

那么在它的这个语言当中包含了

我们刚刚说到map和reduce两个简单的阶段

同时它是一个批量对数据处理的这样一个编程的一个模式

那么在这个过程中数据会一批一批

然后经过迭代的方式得到处理

那么这是MapReduce

它的一个简单的一个架构的一个情况

在这里面我们用了Hadoop他的这个语言进行描述

在上面有一系列的这个name node

管理了整个系统中的各种各样的数据

那么我们之前说到这种分布式文件系统里面的数据

实际上在这样的一个背景下

在这样一个框架下已经被管理了起来

那么在这之上我们给他增加了计算能力

也就构成了MapReduce的这样一个计算的模式

那这些节点

同时具有了这个数据

也具有了可以去处理数据的这种逻辑

那么形成了一个分布式的数据处理的一个框架

那简单的我们可以看到它是有一个中心的

管理整个任务的这样一个Job Tracker

以及分布式的一系列的来管理

具体的计算任务的这个Task Tracker组成的

我们会在后面的这个介绍中具体展开

那么MapReduce中核心的两个阶段

是map和reduce两个阶段

那在这里我们给出了这两个阶段

实际它发生了一些什么事情

在map里面实际上我们会把数据输入

而我们的数据已经被我们抽象成了

一系列具有key和value的这样的数据的这样一个原子

那么map的任务

就是将这样的key和value的原始数据把它变成中间的结果

那中间结果同样具有key和value这样的属性

只不过这个key和value

和你读入进来的key和value不一定一样

那么具体要做什么呢

是我们的程序员我们的数据分析师要去做的事情

那么reduce阶段就是将这个map阶段生成的

中间的这个key和中间的value这些结果作为输入

然后进一步生成

最终我们需要的结果也是一个key和value这样的一个数据集

那这样的一个过程实际上

满足了我们刚刚在前面提到的

对数据处理的基本上

需要的那个数据读取数据排序

以及数据整合3个过程的一个需求

那么在MapReduce中

它还提供了哪一些这种健壮性的支持呢

首先呢程序员不需要去知道整个任务

需要分成多少份需要在哪些节点上运行

它的分布话是自动进行的

第二程序员和数据工程师

他并不需要管理这个系统的失败

节点坏了、硬盘坏掉、甚至网络不通

那么都会有整个MapReduce的系统自发的来处理

同时它还提供了一系列用来查看任务运行

以及整个系统健康情况的一些工具

来帮助用户能够了解系统运行的一个状态

那么最后他给程序员提供了一个非常干净

和简单的这样一个编程的模型

仅仅两个阶段就可以完成

比较复杂的数据处理的过程

这是MapReduce在我们整个大数据

系统框架里面它的一个位置

实际上它处在一个相对比较核心的位置

它连接了底层

我们之前说到的这个分布式文件系统

以及上层我们进行的一系列大数据处理的任务

那这是MapReduce他所在的这样一个地位

在下一个单元当中实际上

我们会去讲MapReduce他具体的

这样一个数据处理的模型

高级大数据系统课程列表:

Introduction to Big Data Systems

-What is big data and what is big data system?

--Video

-Problems in big data systems?

--Video

-Overview of the course

--Video

-Principles of big data system design

--Video

Basics of Linux Data Processing

-Manipulating Data on Linux

--Video

--Video

--Video

-Basics of Linux Data Processing--Manipulating Data

-Running Commands on a Single Machine

--Video

-Running Commands on a Single Machine--作业

-Using a Linux Cluster

--Video

-Using a Linux Cluster--作业

Distributed File System

-Storage for Big Data Computing: Distributed file system

--Video

-Storage for Big Data Computing: Distributed file system--作业

-File system and GFS

--Video

-File system and GFS--作业

-Understanding HDFS using Legos

--Video

-Understanding HDFS using Legos--作业

-File System Implementation and DFS

--Video

--Video

-File System Implementation and DFS--作业

MapReduce

-What is MapReduce and why

--Video

-What is MapReduce and why

-Learn MapReduce by playing with cards

--Video

-Processing pattern

--Video

-Processing pattern--作业

-Hadoop

--Video

-Hadoop--作业

-Algorithms in MapReduce

--Video

-Algorithms in MapReduce--作业

-Tutorial

--Video

In-memory Processing

-Background

--Video

-Background--作业

-Spark

--Video

-Spark--作业

-Use Spark for data mining

--Video

-Use Spark for data mining--作业

-Spark data processing

--Video

-Spark data processing--作业

-Experiment in Spark

--Video

-Experiment in Spark--作业

Streaming Data Processing

-Introduction to streaming data processing

--Video

-Introduction to streaming data processing--作业

-Storm

--Video

--Video

--Video

-Storm--作业

-Spark streaming

--Video

--Video

-Spark streaming--作业

NoSQL

-NoSQL introduction

--Video

-NoSQL introduction--作业

-Common Advantages

--Video

-Common Advantages--作业

-Bigtable

--Video

-Bigtable--作业

-Master Startup

--Video

-Master Startup--作业

-HBase

--Video

-HBase--作业

Graph Processing

-What is GraphDB and Graph data processing

--Video

-What is GraphDB and Graph data processing--作业

-Graph systems

--Video

-Graph systems

-Example of a GraphDB

--Video

-Example of a GraphDB--作业

Machine Learning System

-Mahout

--Video

-Mahout--作业

-Case Study: Recommendation

--Video

-Case Study: Recommendatio作业

-Recommendation in Mahout

--Video

-Recommendation in Mahout--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。