当前课程知识点:大数据系统基础 >  4. 处理框架 >  授课视频 >  4.6Hadoop

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

4.6Hadoop在线视频

4.6Hadoop

下一节:4.7MapReduce总结

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

4.6Hadoop课程教案、知识点、字幕

下面我们来介绍一个可能是

大数据领域最最著名的系统

那么叫做HADOOP

MAPREDUCE

是一种非常广义的概念

HADOOP是MAPREDUCE

具体的开源的实现

刚才我们讲MAP REDUCE

是基于一个概念性的讲的

而且是基于

Google的论文讲的

但是Google的系统

是不开放的

所以实际上大部分人

用的MAP REDUCE

它就是HADOOP的MAP REDUCE

所以现在大家也管

这一类的系统

就叫HADOOP的系统

这是大数据领域里

最重要的一个软件

可以说没有这种软件

就没有现在所说的

大数据系统这种东西

那么HADOOP和Google的

Map Reduce

究竟有什么样的区别呢

Google的Mapreduce

和Hadoop到底有什么区别

因为Google的Mapreduce

刚才我们也提到了

它是基于Google的

一系列分布式架构的

比如说DFS 比如说client

能够保证它通讯的一致性

比如说它的资源调度管理系统

能够确保每一个任务

不管是计算任务还是管理任务

都能够在正确的机器上

被正确的执行

以及包括一系列的

管理和监控架构

确认每一个任务都是活的

然后还有一个

大家容易忽视的事情

就是说你的可执行文件

是怎么发布到每台机器上去的

你的配置文件是怎么

发布到每台机器上去的

这一些都是Google

其它的分布式系统保证的

但是Hadoop

作为一个开源实现

它不能保证你的架构里头

有这些分布式的服务

因此Hadoop

不仅实现了文件系统

和Mapreduce

它还实现了一系列的

这种零碎的任务

来做资源管理和调度

来做可执行程序的分发等等

再确保这个运行

这个解释

为什么我们先讲清楚了

Mapreduce的理念

和它核心的系统实现

然后我们再来讲

Hadoop的使用

否则的话你会觉得Hadoop

它里头是一个特别

庞杂 繁杂复杂的系统

实际上不是

这些系统都是为了

来支持它的核心任务的运行的

那么Hadoop的基本架构来看

有这几个方面

第一个叫做Jobtracker

或者我们叫master

但是Hadoop也要Jobtracker
这个jobtracker的任务

是接受了一个

Mapreduce的任务

然后我们把这些任务

分配给worker

然后它负责了监控

它负责了各种错误的处理

但是在分配的过程中

它要考虑到

哪一个Worker上还有资源

所以它也是一个

资源和管理调度的

这么一个静态

那么它的任务是从哪里提交

它是从用户提交的

就Client

这是客户端

Mapreduce的客户端

它是把一个任务

通过一个面临行的工具

提交给tasttracker

这个任务就包括了任务的描述

你到哪里去找

你的输入输出数据

你到底要跑多少个Map

到底要跑多少个reduce

以及你的程序的[00:02:36]

在什么地方

在每一个计算解点

每一个worker上

那么它都跑了一个

叫Tasttracker的东西

因为一个woker上

可以跑多个Map

和reduce的程序

这个因为发布成woker

大部分计算解点都是多盒的

所以它可以跑多个Map

或者reduce的进程

然后多盒上

tasktracher这个进程

负责管理在tasktracher

跑的各个mapreduce的进程

然后这个Task

是一个独立的进程

为什么它不是跟

tasktracher跑在一起的

是因为Task可能随时会阻塞

因为你可能访问了一个

无效的指针诸如此类的

它就死了

所以它是为了保护tasktracher

所以产品Task

是一个独立的进程

这一个进程是运行了一个MAP

或者reduce的函数

然后它处理了一个[00:03:19]

这是一个Task

然后Task会把它的进度

放到tasktracher

tasktracher
会把进度报告给Master

它是这样的一种

基本的一个组建

那么我们详细看一下在Hadoop里

它这个具体程序是怎么执行的

用户首先要把文件

都放在HDFS上

Hadoop的文件系统

就类似于Google的DFS

它叫HadoopDFS HDFS

先把输入文件放到HDFS上去

然后它对Client

提交了一个任务

这个Client得到了

一系列输入文件的信息等等

然后它去把一系列的文件

数据都绑在一起

它会把这一系列的东西

作为两个配置文件

也放在分布式文件系统里头

所以它这个分布式文件系统

有两个作用

第一个是它保存了

输入和输出的文件

第二件事情是

它也是传递配置文件

和传递可执行文件的一个媒介

所以它把Tcacker端

负责把这些东西

放在HDFS上

然后Tcacker端放完了之后

它会看看这个输入到底有多大

然后它创建了一系列的Jop

然后它就跟那个JopTracker

我关于这个任务

关于这个Job的描述和信息

和[00:04:29]

以及它的文件

已经在HDFS上

现在可以开始跑这个Jop了

那么下一步

Client提交任务之后

这个Joptracker

首先会进行一个

初始化任务的过程

这个初始化任务

实际上就是它看一看

有没有这些资源

然后把这些资源预约下来

如果有资源的话

它就把资源预约下来

如果没有的话

它就会把这个任务

放在一个任务队列里头

然后它会把分布式

文件系统上的任务描述文件

读取出来打开看看

看看你到底要跑什么

然后根据这个描述文件

和它预约下来的资源

它会创建

在woker上创建MAP的进程

和Reduces的进程

然后它会看到Map对输入

做的这些分割 这些块

然后它会把这个块

分成尽量多的

然后交给Map的程序来运行

那么我们下面就走到下一步

这个开始运行之后

Jobtracker

会告诉每一个Woker上

Tasktracker

说你应该跑哪几个任务

然后我给你分配的是哪几个

输入的切分

tasktracker就会去

看看那些切分

然后copy一个进程

这个进程就是它实际跑

MAP或者reduces的这个进程

然后它告诉这个进程

说你看你应该跑这个切分

然后你的参数是这些

它把那个整个的配置

包括它去哪里读输入文件

全部给这个任务

这个任务启动运行之后

它就回去读了

实际上HDFS上去拿那个文件

然后自己运行

运行的过程中

它会随时把状态

报告给Tasktracker

然后Tasktracker这个东西

它会每隔一段时间

会给这个Jobtracker

发一个心跳这样的信息

它告诉Joptracker说

你看我还活着

然后Jobtracker

就会记录下

每一个Tasktracker的信息

它说我还活着

我运行了多少了

它会把这综合起来

说整体的Jop运行了多少了

把它放在一个

漂亮的界面来显示

因为Joptracker

这儿有一个任务

这儿有一个任务的队列

其实它不一定一个Jop来等着

所以只有一个Jop

比如说大部分完成了

完成一多半

但它有一些个没完成的时候

这时候JopTracker

也可以选择其它

大的JOP里头的其它的小任务

然后一起开始分程

这样的话JopTracker的任务

是保证在有任何工作的情况下

能保证每一个

TsakTracker的资源

都能够用的尽量满

因为这样的话

实际上咱们整体的

这个集群的运行效率就高了

所以这种状态

就是TaskTracker运行任务

JobTracke不断的给TaskTracker

塞到一些新的任务

这个状态会一直持续到

每一个MapReduce运行完

直到它所有的东西

都运行完之后

所有的结果都会跑到磁盘上

这个时候一个MapReduceJob

就结束了

那下一个MapReduce

如果它有的话

很可能已经继续开始了

所以因此JobTracker

这个事情

它不光是管理了

一个MapReduceJob

它是管理了多个

这就跟Google的

那个MapReduce里面的Mast

是有区别的

大数据系统基础课程列表:

1. 绪论

-授课视频

--什么是大数据

--大数据典型应用

--大数据的特点

--大数据技术体系

--大数据生态系统

--大数据技术挑战

--课程内容

-1. 绪论--Quiz 1

2.云计算

-授课视频

--2.1大数据和云计算关系概述

--2.2并行化理念

--2.3规模经济理念

--2.4从仓库规模计算机到云

--2.5云计算商业模式概述

--2.6云计算带来的价值

--2.7云计算的分类

--2.8虚拟化技术概述

--2.9计算虚拟化

--2.10网络虚拟化:基础

--2.11网络虚拟化:软件定义网络

--2.12软件定义网络实现

--2.13存储虚拟化:用户接口

--2.14存储虚拟化:分布式存储实现方式

--2.15虚拟化技术总结

--2.16OPENSTACK

--2.17云计算小结

-2.云计算--Quiz 2

3.文件存储

-授课视频

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-3.文件存储--Quiz3

4. 处理框架

-授课视频

--4.1大数据的处理框架

--4.2MapReduce编程模型

--MapReduce执行过程

--4.4MapReduce数据流

--4.5MapReduce性能优化与容错

--4.6Hadoop

--4.7MapReduce总结

--4.8Pig Latin

--4.9Pig Latin语法

--4.10Pig Latin 嵌套数据类型

--4.11Pig Latin 实现与优化

--Pig Latin 实现与优化(2)

--4.13类似框架

--4.14章节总结

-4. 处理框架--Quiz4

5.内存计算

-授课视频

--5.1内存计算概述

--5.2并行计算挑战

--5.3并行计算的局限性

--5.4大数据处理并行系统

--5.5内存计算需求

--5.6MapReduce文件传递数据

--5.7内存计算的可行性

--5.8内存层次的延迟

--5.9内存计算实例-spark

--5.10SPARK-RDD

--5.11大数据并行系统

--5.12Spark编程接口

--5.13Spark编程实例——Log挖掘

--5.14Spark编程实例——WorkCount

--5.15Spark实现技术

--5.16复杂的DAG示例

--5.17RDD性能的提高

--5.18Spark应用和生态环境

--5.19Spark的局限性

-5.内存计算--Quiz5

6. NoSQL

-授课视频

--NoSQL与Cassandra

--数据模型、接口、语言

--系统架构与Gossip协议

--一致性哈希与数据分区

--数据副本及一致性

--节点本地数据存储

-6. NoSQL--Quiz6

7. 流计算

-授课视屏

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-7. 流计算--Quiz7

4.6Hadoop笔记与讨论

也许你还感兴趣的课程:

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