Hadoop大数据技术(新)

课程简介

(一)课程性质

《云计算技术》课程是计算机科学与工程学院平台必修课程。该课程的先修课程有《Java程序设计》、《操作系统》和《计算机网络基础》等。

云计算技术是一门与大数据处理紧密相关的前沿性课程。该课程主要介绍云计算的技术、概念、基本原理和实现方法与发展等,可以以Hadoop为主线,系统阐述该开源云框架下的核心设计理念和技术。该课程的开设能够使学生在学习了计算机专业基础知识后,对云计算技术的基本原理和方法进行全面的了解,使学生熟悉和理解云计算的核心思想,掌握Hadoop开源平台的安装和使用方法,初步掌握MapReduce编程的基本方法和原理。课程旨在开拓学生专业视野,提升大数据背景下的专业素养,同时也为将来在大数据处理等领域学习和工作的学生提供专业导引。

(二)教学目的

通过本课程的学习,使学生能够对云计算的由来、概念、原理和实现技术有基本的认识,了解支持云计算的主要产品和工具以及掌握其技术原理和应用方法,了解云计算的主要研究热点与应用领域,认清云计算的发展趋势和前景;另外,通过基于Hadoop等开源工具的相关实验,让学生亲身体验分布式文件系统、分布式计算和分布式数据库的应用及实现,从而加深所学的理论知识的理解,为今后处理实际的问题打下基础。

(三)教学内容

本课程的教学内容围绕操作系统的资源管理功能展开,主要包括以下内容:云计算的概念、发展历史、分类、基本机制等基本知识、Google云计算原理及应用、Hadoop开源云框架、虚拟化技术,云计算数据中心以及云计算核心算法等。此外,还可以对云计算技术发展过程中的关键技术、核心算法、 主流的国内外云计算技术等进行介绍,让学生对云计算学科发展整体上有所了解。

(四)教学时数

本课程的总时数为54学时,其中,课堂教学时数为36学时,实验教学时数为18学时。

(五)教学方式

本课程的教学方式主要采用课堂讲授和实验操作。包括:课堂讲授、多媒体教学、实验操作、算法分析与设计、习题解析、课堂讨论、批改作业、课外辅导等多种形式相结合,并配合网络教学等教学手段,保证学生掌握云计算的基本知识,理解核心算法的原理,培养学生的自学能力、分析问题和解决问题的能力。

教学方法:采用启发式教学和探究式教学,以学生为主体,鼓励学生自己针对当前的云计算技术进行分析和研究,培养学生的自学能力,以“少而精”为原则,精选教学内容,精讲多练,调动学生学习的主观能动性。

教学手段:充分利用电子教案和网络教学平台等多种教学手段和资源。

考试环节:考试形式采用笔试和讨论的形式,考试题型包括简答题和分析设计题等多种题型,力争做到对学生学习水平和能力的综合评价。


教师简介

张国治,工学博士,计算机科学与技术专业,研究方向:计算机网络与安全、未来网络体系结构、移动网络,大数据、云计算。先后在国内外期刊发表论文多篇,参与和主持项目多项。

先导课程

该课程的先修课程有《Java程序设计》、《操作系统》和《计算机网络基础》等。


教学计划

理论部分

第一章  概述

教学要点:

本章是对课程介绍及云计算技术概述,包括云计算的由来、概念、发展现状、服务类型、典型的技术方案以及云计算的特点与优势,目的是帮助学生对云计算形成一个初步认识。教学重点是基本概念的掌握和理解。教学过程中要强调这门课程的重要性,强调分布式算法与传统方式的不同之处和特点。

本章要求学生掌握云计算基础所要解决的核心问题和基本解决思路。

教学时数:

    2学时。

教学内容:

第一节 大数据与云计算  0.5学时)

大数据的概念;大数据时代背景下对大数据和云计算之间的关系;云计算技术的基本概念和分类。

第二节 云计算的形成与发展  0.5学时)

云计算的演变发展;当前主流的云计算技术;国内的云计算技术;

第三节 云计算的实现机制  0.5学时)

云计算的体系结构;

第四节 云计算的优势  0.5学时)

云计算在硬件成本,电价,管理费用等方面的优势。

考核要求:

1. 识记:云计算的定义和主要特性。

2. 领会:云计算在在大数据背景下的作用和地位;不同类型云计算技术的特点;云计算技术带给当前开发模式方面的影响;云计算的基本实现机制;云计算的优势。

第二章  Google 云计算

教学要点:

本章介绍Google云计算的背景、技术体系及应用场景:详细讲解四种核心技术,包括分布式文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化存储系统Bigtable:介绍Google的应用程序开发平台Google App EngineGoogle云计算应用场景分析。

本章的内容和Hadoop有紧密关系,因此需要比较深入的理解Google云计算的核心思想和基本方法。

教学时数:

   4学时。

教学内容:

第一节Google 云计算简介(1学时)

Google云计算的的背景;Google云计算的技术体系;Google云计算的应用场景。

第二节 分布式文件系统GFS1学时)

Google文件GFS的系统构架;了解Google文件GFS的容错机制; Google文件GFS的系统管理技术。

第三节 分布式计算编程模型MapReduce1学时)

         MapReduce产生背景; MapReduce产生背景; MapReduce编程模型;MapReduce实现机制;

第四节 分布式锁服务Chubby和分布式结构化数据表Bigtable1学时)

考核要求

1.识记:

2.掌握:

3.熟练掌握:

4.综合应用:

第三章 Hadoop 2.0 开源框架

教学要点:

本章详细讲解Hadoop开源项目的HDFSMapReduceHBase,并通过上机实验对相关技术进行使用和验证。

本章是课程重点,要求学生数量掌握Hadoop的基本框架结构和核心思想,熟悉Hadoop的部署,搭建Hadoop平台,并能够初步利用MapReduce模型编程。

教学时数:

   6学时。

教学内容:

第一节 分布式系统与Hadoop简述  1学时)

针对特定问题,传统解决方案和分布式解决方案的不同之处;Hadoop2.0项目的来源和现状;Hadoop2.0的相关项目;Hadoop2.0的应用。

第二节 Hadoop 2.0 部署  1学时)

Hadoop的部署方案,掌握不同部署方案的区别;Hadoop2.0的传统解压包部署方式。

第三节 Hadoop 2.0体系结构  2学时)

Hadoop 2.0公共组件的作用;分布式文件系统HDFS的原理;分布式操作系统;Hadoop2.0的安全机制

第四节 Hadoop2.0访问接口(1学时)

    了解Hadoop访问的浏览器接口和命令行接口,理解其使用方法。

第五节 Hadoop2.0编程接口  1学时)

理解并掌握HadoopHDFS编程和Yarn编程的基本方法,原理和步骤。

考核要求

1.识记:分布式系统与Hadoop的特点。

2.掌握:Hadoop 2.0公共组件的作用;分布式文件系统HDFS的原理;分布式操作系统;Hadoop2.0的安全机制

3.熟练掌握:Hadoop 2.0 部署方式;

4.综合应用:HadoopHDFS编程和Yarn编程的基本方法,原理和步骤。

第四章  Hadoop 2.0家族组件介绍

教学要点:

    本章主要介绍分布式环境下除Hadoop外的其他组件,包括Zookeeper, HBase, Pig, Hive, Oozie, Flume, Mahout等组件。教学重点是ZookeeperHBase

本章要求学生对ZookeeperHBase等技术有比较深入的理解,其他技术基本了解即可。

教学时数:

    6学时。

教学内容:

第一节 Hadoop 2.0大家族概述(1学时)

    Hadoop 2.0 家族构成和演变,不同组件的作用,体系结构。

第二节 Hadoop分布式组件和部署(5学时)

Zookeeper初步掌握其使用; HBase并初步掌握其基本使用;Pig并初步掌握其使用;Hive并初步掌握其使用;Oozie并初步掌握其使用;Flume并初步掌握其使用;Mahout并初步掌握其使用

考核要求

1.识记:

2.掌握:Hadoop 2.0 家族构成和演变,不同组件的作用,体系结构。

3.熟练掌握:Zookeeper初步掌握其使用; HBase并初步掌握其基本使用;Pig并初步掌握其使用;Hive并初步掌握其使用;Oozie并初步掌握其使用;Flume并初步掌握其使用;Mahout并初步掌握其使用

4.综合应用:

第五章  虚拟化技术

教学要点:

本章主要讨论虚拟化技术。虚拟化技术的核心思想是利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。在虚拟资源上可以安装和部署多个虚拟机,实现多用户共享物理资源。

本章要求学生掌握虚拟化技术的基本类型,实现方法,分类和一般模型。

教学时数:

    3学时。

教学内容:

第一节  虚拟化技术简介 (1学时)

虚拟化技术的概念;虚拟化技术的特点;虚拟化技术给云计算带来的好处。

第二节 服务器虚拟化  0.5学时)

服务器虚拟化的层次;服务器虚拟化的底层实现;虚拟机迁移技术;虚拟机隔离技术。

第三节  存储虚拟化  0.5学时)

存储虚拟化的一般模型;存储虚拟化的实现方式。

第四节  网络虚拟化  0.5学时)

核心层网络虚拟化;接入层网络虚拟化;虚拟层网络虚拟化;VMware的网络虚拟化技术。

第五节 桌面虚拟化  0.5学时)

桌面虚拟化;桌面虚拟化技术现状。

考核要求

1.识记:虚拟化技术的概念;虚拟化技术的特点;虚拟化技术给云计算带来的好处。服务器虚拟化的层次;服务器虚拟化的底层实现;虚拟机迁移技术;虚拟机隔离技术。存储虚拟化的一般模型;存储虚拟化的实现方式。桌面虚拟化;桌面虚拟化技术现状。

2.掌握:虚拟化技术的核心思想虚拟化技术与云计算的关系。

3.熟练掌握:

4.综合应用:

第六章 OpenStack

教学要点:

本章主要讨论OpenStack;

本章要求学生对OpenStack的背景,基本概念和功能,工作原理和应用场景等有一个基本的了解

教学时数:

    6学时。

教学内容:

第一节  OpenStack背景  (1学时)

OpenStack的基本概念;OpenStack的主要服务。

第二节 计算服务Nova  2学时)

Nova基本构成组件。每部分组件的基本功能;Libvirt的基本功能和体系结构。AMQPRobbitMQ的基本原理;NovaRabbitMQ的应用;

第三节  对象存储服务Swift  2学时)

Swift的基本功能和特性。Swift的应用场景;Swift的主要组件;Swift的基本原理。

第四节 镜像服务Glance  1学时)

Glance的作用;Glance的组成部分;

考核要求

1.识记:OpenStack的基本概念;OpenStack的主要服务。

2.掌握:Nova基本构成组件。每部分组件的基本功能;Libvirt的基本功能和体系结构。AMQPRobbitMQ的基本原理;NovaRabbitMQ的应用;Swift的基本功能和特性。Swift的应用场景;Swift的主要组件;Swift的基本原理。Glance的作用;Glance的组成部分;

3.熟练掌握:

4.综合应用:

第七章 云计算中心

教学要点:

本章主要讲授云计算中心在网络管理方面的一些特征和方法,包括部署,节能,自动化管理,容灾备份等机制。

本章要求学生对云数据中心的特征、网络部署、节能技术、自动化管理技术和容灾备份机制有一个基本的了解

教学时数:

    3学时。

教学内容:

第一节  了解云数据中心的特征  (0.5学时)

第二节  了解云数据中心网络部署  1学时)

改进型树结构;递归层次结构;光交换网络;无线数据中心网络;软件定义网络。

第三节 了解绿色节能技术  (0.5学时)

配电系统节能技术;空调系统节能技术; 集装箱数据中心节能技术;数据中心节能策略和算法研究;新能源的应用;典型的绿色节能数据中心。

第四节 了解自动化管理(0.5学时)

    自动化管理的特征;自动化管理实现阶段;Facebook自动化管理。

第五节 了解容灾备份(0.5学时)

    容灾系统的等级标准;容灾备份的关键技术;云存储在容灾备份中的应用。

考核要求

1.识记:云数据中心的特征;云数据中心网络部署;配电系统节能技术;空调系统节能技术; 集装箱数据中心节能技术;数据中心节能策略和算法研究;新能源的应用;典型的绿色节能数据中心;容灾系统的等级标准;容灾备份的关键技术;云存储在容灾备份中的应用。

2.掌握:

3.熟练掌握:

4.综合应用:

第八章  云核心算法

教学要点:

本章主要介绍云中心三个最核心的算法:Paxos算法、DHT算法和Gossip协议。

掌握和理解Paxos算法需要解决的问题;DHT算法的目标;Gossip协议的目标;要求学生理解 Paxos算法数据的一致性的实现机制、DHT协议的应用场景。掌握 Gossip协议中消息传播的三种方式;CoolStreaming系统中消息传播的机制。

教学时数:

    6学时。

教学内容:

第一节  Paxos算法  (2学时)

Paxos 算法背景知识; 理解并掌握Paxos 算法;理解Paxos 算法举例。

第二节 DHT算法  2学时)

DHT原理介绍; ChordDHT的具体实现;PastryDHT的具体实现;CANDHT的具体实现;TapestryDHT的具体实现。

第三节  Gossip协议 (2学时)

Gossip协议的特点;Gossip协议的通信方式及收敛性;Gossip节点管理算法;CassandraGossip协议的具体实现方式;CoolStreaming系统中Gossip协议的具体实现方式。

考核要求

1.识记:

2.掌握:DHT原理介绍; ChordDHT的具体实现;PastryDHT的具体实现;CANDHT的具体实现;TapestryDHT的具体实现。

3.熟练掌握:Paxos 算法背景知识; 理解并掌握Paxos 算法;理解Paxos 算法举例。Gossip协议的特点;Gossip协议的通信方式及收敛性;Gossip节点管理算法;Cassandra中Gossip协议的具体实现方式;CoolStreaming系统中Gossip协议的具体实现方式。

4.综合应用:

实验部分

(一)基本要求

《云计算实验》是《云计算技术》课程教学中不可分割的重要组成部分。实验课程设计的思想是帮助学生理解和掌握操作系统的基本概念、算法、技术和原理,熟练掌握Hadoop为主的开源平台的搭建和使用方法,并通过适当的编程让学生了解MapReduce编程的基本方法以及实践动手能力,提高学生对课程的学习兴趣,加强创新精神与综合素质的培养。

(二)实验项目总表

序号

实验项目名称

学时数

项目类别

项目类型

1

Linux基础

2

基础

必做

2

Hadoop 安装与测试

4

基础

必做

3

在Hadoop环境下编写MapReduce程序

4

设计

必做

4

Spark安装

2

基础

必做

5

Flume+Kafka+Spark streaming综合设计

6

综合

必做

(三)实验项目内容及要求

实验一 Linux基础

实验内容:

以ubuntu16.04 LTS为例,掌握linux系统在虚拟机的安装使用方法;掌握linux系统的基本命令,文件操作,系统配置的使用方法;掌握linux下编辑和编译文件的基本方法,熟悉nano/vi/vim等编辑工具的使用。

实验目的:

熟悉Linux操作系统的环境,学会Linux操作系统的基本使用。熟悉Linux的常用命令,包括系统及用户管理命令、设备管理命令和目录及文件操作命令等。如man、passwd、mount、ls、cd、more、rm、mv、cp、mkdir、rmdir等。

实验要求:

掌握Linux操作系统的使用。

实验二 Hadoop 安装与配置

实验内容:

在ubuntu16.04 server LTS 上安装hadoop系统;启动和配置Hadoop集群系统;使用Hadoop集群系统存取文件。

实验目的:

掌握Hadoop在Linux操作系统上的安装和配置方法。

实验要求:

熟练掌握Linux的常用命令,熟悉Linux的命令操作界面在实验报告中列出命令的格式和常用参数。

实验三 Map Reduce编程

实验内容:

分布式并行编程。MapReduce模型简介。MapReduce函数。实例分析:WordCount

实验目的:

熟练掌握Map Reduce 的编程思想和基本编程方法。

实验要求:

掌握MapReduce编程的基本方法运行示例程序, 检查实验结果并撰写实验报告。

 

实验四 Spark安装调试

实验内容:

Spark安装;Spark RDD基本操作

实验目的:

掌握Spark在linux下的安装方法和基本使用方法。

实验要求:

搭建成功的Spark环境运行Spark示例程序, 检查实验结果并撰写实验报告。

 

实验五flume+kafka+spark streaming综合设计

实验内容:

Flume安装并利用Flume抓取日志;Kafka安装;整合Kafka与Flume。

实验目的:

掌握Flume组件的安装方法和基本使用方法。了解并掌握消息中间件Kafka的使用方法。安装Kafka、Flume和spark streaming;整合flume+kafka+spark streaming,实现flume+kafka+spark streaming的整合,实现一个实施的消息流处理机制。;

实验要求:

成功安装Flume组件成功安装kafka组件 实例测试kafka,检查实验结果并撰写实验报告。

 

(四)考核要求

1. 能够安装Linux操作系统,并安装Hadoop环境;

2. 能够独立熟练使用Hadoop环境;

3. 能够编写简答的Map Reduce程序;

4. 能够使用基本的Hadoop组件;

5. 实验报告中能对问题和现象进行解释,对设计和综合类的实验项目,要有分析、设计以及测试的过程说明。


考试方式

A4纸考试法

参考书目

1.《云计算(第三版)》电子工业出版社 刘鹏 主编

2.《Hadoop 权威指南》(清华大学出版社 Tom White[美] 著)