李 韌
(重慶交通大學信息科學與工程學院,重慶 400074)
隨著以Internet為代表的計算機技術快速發展和應用,當前業界待處理的數據已呈現出海量性、高速增長性、多樣性等大數據特性,對傳統單機環境下的數據存儲和計算模式帶來了嚴峻的挑戰[1]。近年來,云計算技術因其具備的高性能、易擴展和按需服務等特性受到了工業界和學術界的廣泛關注。如何充分利用云計算特性對各行業大數據進行高效的分布式存儲、計算和分析已成為當前計算機相關領域最熱門的研究和應用方向之一。
為滿足業界對高素質云計算和大數據處理專門人才的迫切需求,我國高等學校計算機相關專業已在高年級本科和研究生培養過程中逐步開設了云計算與大數據處理課程,以教授學生該方向的基本理論知識和關鍵應用技術。本文分析了云計算與大數據處理的關鍵技術,對該課程體系結構進行探索,并提出了以Hadoop開源平臺MapReduce、Spark和Storm等編程模型為主線的課程教學模式。
云計算是建立在傳統分布式計算、效用計算、虛擬化技術、Web服務和網格計算等技術的研究基礎之上,根據用戶特定需求,對其提供按需的數據存儲和高性能計算服務的新型計算模式。根據服務應用場景不同,當前云計算主要分為基礎架構即服務(Infrastructure as a Service,IaaS)、平臺即服務(Platform as a Service,PaaS)和軟件即服務(Software as a Service,SaaS)3 種服務模式[2]。
為保障向用戶提供按需服務順利實施,云計算服務端具備了面向海量數據的高性能、可擴展存儲及計算能力。其中,由Google公司提出的GFS分布式文件系統、MapReduce分布式計算模型以及BigTable分布式數據庫已成為業界最廣泛使用的數據密集型分布式存儲和計算模型。Apache公司將上述3種模型在Hadoop平臺中進行了開源實現[3],針對性地提出了HDFS分布式文件系統、MapReduce分布式編程框架和HBase分布式數據庫系統。另外,為改進MapReduce的迭代和實時計算性能,研究人員分別提出了Spark和Storm計算框架,并已在多個領域得到了成功的應用。除了上述開源實現以外,Hadoop還包含了通用基礎模塊Hadoop Common,集群作業調度和資源管理模塊Hadoop YARN,工作流編程框架Tez和數據倉庫基礎模塊Hive等組件,并提供了機器學習和數據挖掘庫Mahout支持[4]。目前,Hadoop已構建了一個完整的適應于云計算環境下大數據處理生態系統。眾多的大型軟件公司和行業巨頭,例如 Amazon、騰訊、百度、阿里巴巴等,均基于 Hadoop構建了符合自身業務處理需求的大數據存儲和分析平臺。
以筆者所在的重慶交通大學信息科學與工程學院為例,云計算與大數據處理課程體系包括了32學時的理論課程和16學時的實驗課程。基于該領域關鍵技術和發展現狀,理論課程使學生掌握云計算與大數據處理的基礎概念、虛擬化技術和分布式集群技術的基本概念、主流大數據處理系統的體系結構及其程序設計方法基礎,以及數據中心構建基礎等方面的知識。重點培養學生在云計算環境下的Hadoop相關技術的程序設計和開發能力,強化學生云計算環境下基于數據驅動的程序設計思維與理念,并形成一個完整的知識框架體系,以滿足實際工作中對云計算和大數據處理應用型人才基本技能的要求。該課程體系結構設置情況如圖1所示。
在實驗課程講授方式方面,以理論課程的知識體系為基礎,為學生提供云計算與大數據處理關鍵技術的仿真模擬訓練,并以此強化學生對相關知識點的掌握和實際運用能力。實驗課程以班級為單位,將班級分為若干個小組,在實驗過程中每個小組獨立地進行計算集群的搭建,完成相關程序設計和研發。通過對各類行業大數據背景的分析與設計,將本課程的知識應用到案例中去,使學生能夠比較深刻地認識到云計算與大數據處理的功能和特點,同時能提升學生的動手研發能力。
在教學組織方面,該課程主要采用案例教學方式,注重多媒體及網絡等現代教育技術的應用,同時結合行業大數據處理背景,從實際應用出發,讓學生認識到該課程的實用性,從而有效調動學生的學習積極性,以達到有效提高教學質量的目的。

圖1 云計算與大數據處理課程體系
云計算與大數據處理課程主要分為七大章節。首先,以云計算和大數據處理基礎作為切入點,講授云計算和大數據的基本概念、特點和分類,引入當前主流大數據處理系統及其基本處理流程,探討今后技術發展趨勢。然后,課程講授虛擬化技術和分布式集群基礎技術,主要包括常用虛擬化軟件的基本概念和應用基礎,虛擬機集群的構建和使用方法,集群系統基本概念、分類和特點,集群文件系統的概念,典型集群文件系統的組成結構及其優缺點,以及分布式系統中計算和數據的協作機制等。其次,課程講授經典的分布式計算MPI技術的基本概念、架構和特點,MPICH并行環境的建立和使用方法以及MPI分布式程序設計基礎,使學生熟悉傳統MPI分布式計算知識并初步具備分布式環境下的程序設計能力。
在此基礎之上,課程重點講授主流的Hadoop、Storm和Spark大數據處理相關技術。以Hadoop生態系統及其體系結構為基礎,講授Hadoop環境的建立與使用方法,HDFS分布式文件系統結構及數據劃分方法,重點闡述MapReduce基于鍵值對的并行編程模型、運行時環境及其程序設計方法。另外,以分布式實時計算和迭代計算案例為驅動,重點講授Storm和Spark編程模型原理、體系結構、開發環境的建立與使用方法、程序設計方法。在實驗課程中,充分結合各行業大數據處理實際應用需求,重點培養學生在HDFS和HBase等大數據分布式存儲環境下使用MapReduce、Storm和Spark編程模型的實際開發和應用分析能力。
云計算與大數據處理課程以虛擬化和分布式集群系統理論知識為基礎,重點講授Hadoop開源框架下HDFS、MapReduce、Spark等大數據處理關鍵技術,并以案例驅動的方式組織實驗教學,能夠有效提升教學質量,使學生適應當前迫切的云計算與大數據分析人才需求。
[1] 王鵬,黃焱,安俊秀,等.云計算與大數據技術[M].北京:人民郵電出版社,2014.
[2] 王鵬.云計算的關鍵技術與應用實例[M].北京:人民郵電出版社,2010.
[3] 劉軍.Hadoop大數據處理[M].北京:人民郵電出版社,2013.
[4] Apache Hadoop[EB/OL].[2015 -03 -19].http://hadoop.apache.org/.