(一)课程性质
《云计算技术》课程是计算机科学与工程学院平台必修课程。该课程的先修课程有《Java程序设计》、《操作系统》和《计算机网络基础》等。
云计算技术是一门与大数据处理紧密相关的前沿性课程。该课程主要介绍云计算的技术、概念、基本原理和实现方法与发展等,可以以Hadoop为主线,系统阐述该开源云框架下的核心设计理念和技术。该课程的开设能够使学生在学习了计算机专业基础知识后,对云计算技术的基本原理和方法进行全面的了解,使学生熟悉和理解云计算的核心思想,掌握Hadoop开源平台的安装和使用方法,初步掌握MapReduce编程的基本方法和原理。课程旨在开拓学生专业视野,提升大数据背景下的专业素养,同时也为将来在大数据处理等领域学习和工作的学生提供专业导引。
(二)教学目的
通过本课程的学习,使学生能够对云计算的由来、概念、原理和实现技术有基本的认识,了解支持云计算的主要产品和工具以及掌握其技术原理和应用方法,了解云计算的主要研究热点与应用领域,认清云计算的发展趋势和前景;另外,通过基于Hadoop等开源工具的相关实验,让学生亲身体验分布式文件系统、分布式计算和分布式数据库的应用及实现,从而加深所学的理论知识的理解,为今后处理实际的问题打下基础。
(三)教学内容
本课程的教学内容围绕操作系统的资源管理功能展开,主要包括以下内容:云计算的概念、发展历史、分类、基本机制等基本知识、Google云计算原理及应用、Hadoop开源云框架、虚拟化技术,云计算数据中心以及云计算核心算法等。此外,还可以对云计算技术发展过程中的关键技术、核心算法、 主流的国内外云计算技术等进行介绍,让学生对云计算学科发展整体上有所了解。
(四)教学时数
本课程的总时数为54学时,其中,课堂教学时数为36学时,实验教学时数为18学时。
(五)教学方式
本课程的教学方式主要采用课堂讲授和实验操作。包括:课堂讲授、多媒体教学、实验操作、算法分析与设计、习题解析、课堂讨论、批改作业、课外辅导等多种形式相结合,并配合网络教学等教学手段,保证学生掌握云计算的基本知识,理解核心算法的原理,培养学生的自学能力、分析问题和解决问题的能力。
教学方法:采用启发式教学和探究式教学,以学生为主体,鼓励学生自己针对当前的云计算技术进行分析和研究,培养学生的自学能力,以“少而精”为原则,精选教学内容,精讲多练,调动学生学习的主观能动性。
教学手段:充分利用电子教案和网络教学平台等多种教学手段和资源。
考试环节:考试形式采用笔试和讨论的形式,考试题型包括简答题和分析设计题等多种题型,力争做到对学生学习水平和能力的综合评价。
张国治,工学博士,计算机科学与技术专业,研究方向:计算机网络与安全、未来网络体系结构、移动网络,大数据、云计算。先后在国内外期刊发表论文多篇,参与和主持项目多项。
该课程的先修课程有《Java程序设计》、《操作系统》和《计算机网络基础》等。
理论部分
第一章 概述
教学要点:
本章是对课程介绍及云计算技术概述,包括云计算的由来、概念、发展现状、服务类型、典型的技术方案以及云计算的特点与优势,目的是帮助学生对云计算形成一个初步认识。教学重点是基本概念的掌握和理解。教学过程中要强调这门课程的重要性,强调分布式算法与传统方式的不同之处和特点。
本章要求学生掌握云计算基础所要解决的核心问题和基本解决思路。
教学时数:
2学时。
教学内容:
大数据的概念;大数据时代背景下对大数据和云计算之间的关系;云计算技术的基本概念和分类。
第二节 云计算的形成与发展 (0.5学时)
云计算的演变发展;当前主流的云计算技术;国内的云计算技术;
第三节 云计算的实现机制 (0.5学时)
云计算的体系结构;
第四节 云计算的优势 (0.5学时)
云计算在硬件成本,电价,管理费用等方面的优势。
考核要求:
1. 识记:云计算的定义和主要特性。
2. 领会:云计算在在大数据背景下的作用和地位;不同类型云计算技术的特点;云计算技术带给当前开发模式方面的影响;云计算的基本实现机制;云计算的优势。
第二章 Google 云计算
教学要点:
本章介绍Google云计算的背景、技术体系及应用场景:详细讲解四种核心技术,包括分布式文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化存储系统Bigtable:介绍Google的应用程序开发平台Google App Engine及Google云计算应用场景分析。
本章的内容和Hadoop有紧密关系,因此需要比较深入的理解Google云计算的核心思想和基本方法。
教学时数:
4学时。
教学内容:
Google云计算的的背景;Google云计算的技术体系;Google云计算的应用场景。
第二节 分布式文件系统GFS(1学时)
Google文件GFS的系统构架;了解Google文件GFS的容错机制; Google文件GFS的系统管理技术。
第三节 分布式计算编程模型MapReduce(1学时)
MapReduce产生背景; MapReduce产生背景; MapReduce编程模型;MapReduce实现机制;
第四节 分布式锁服务Chubby和分布式结构化数据表Bigtable(1学时)
考核要求:
1.识记:
2.掌握:
3.熟练掌握:
4.综合应用:
第三章 Hadoop 2.0 开源框架
教学要点:
本章详细讲解Hadoop开源项目的HDFS、MapReduce和HBase,并通过上机实验对相关技术进行使用和验证。
本章是课程重点,要求学生数量掌握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学时)
理解并掌握Hadoop的HDFS编程和Yarn编程的基本方法,原理和步骤。
考核要求:
1.识记:分布式系统与Hadoop的特点。
2.掌握:Hadoop 2.0公共组件的作用;分布式文件系统HDFS的原理;分布式操作系统;Hadoop2.0的安全机制。
3.熟练掌握:Hadoop 2.0 部署方式;
4.综合应用:Hadoop的HDFS编程和Yarn编程的基本方法,原理和步骤。
第四章 Hadoop 2.0家族组件介绍
教学要点:
本章主要介绍分布式环境下除Hadoop外的其他组件,包括Zookeeper, HBase, Pig, Hive, Oozie, Flume, Mahout等组件。教学重点是Zookeeper和HBase。
本章要求学生对Zookeeper和HBase。等技术有比较深入的理解,其他技术基本了解即可。
教学时数:
6学时。
教学内容:
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的基本功能和体系结构。AMQP和RobbitMQ的基本原理;Nova中RabbitMQ的应用;
第三节 对象存储服务Swift (2学时)
Swift的基本功能和特性。Swift的应用场景;Swift的主要组件;Swift的基本原理。
第四节 镜像服务Glance (1学时)
Glance的作用;Glance的组成部分;
考核要求:
1.识记:OpenStack的基本概念;OpenStack的主要服务。
2.掌握:Nova基本构成组件。每部分组件的基本功能;Libvirt的基本功能和体系结构。AMQP和RobbitMQ的基本原理;Nova中RabbitMQ的应用;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原理介绍; Chord中DHT的具体实现;Pastry中DHT的具体实现;CAN中DHT的具体实现;Tapestry中DHT的具体实现。
第三节 Gossip协议 (2学时)
Gossip协议的特点;Gossip协议的通信方式及收敛性;Gossip节点管理算法;Cassandra中Gossip协议的具体实现方式;CoolStreaming系统中Gossip协议的具体实现方式。
考核要求:
1.识记:
2.掌握:DHT原理介绍; Chord中DHT的具体实现;Pastry中DHT的具体实现;CAN中DHT的具体实现;Tapestry中DHT的具体实现。
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模型简介。Map和Reduce函数。实例分析: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[美] 著)