張揚武 李國和
[摘 要]面向工程領(lǐng)域中的大數(shù)據(jù)處理實際需求,培養(yǎng)具備大數(shù)據(jù)開發(fā)和管理能力的人才,是大數(shù)據(jù)實踐教學(xué)題中應(yīng)有之義。文章針對大數(shù)據(jù)認知實踐教學(xué)中存在的問題,結(jié)合理實協(xié)同教學(xué)理念,提出產(chǎn)教融合的大數(shù)據(jù)認知實踐教學(xué)體系和內(nèi)容,著力改善大數(shù)據(jù)認知實踐教學(xué)效果,提高大數(shù)據(jù)應(yīng)用實踐人才培養(yǎng)質(zhì)量。
[關(guān)鍵詞]大數(shù)據(jù);實踐教學(xué);教學(xué)改革;教學(xué)內(nèi)容;Hadoop
[中圖分類號]G642[文獻標(biāo)識碼]A[文章編號]2095-3437(2024)04-0029-04
當(dāng)前,數(shù)據(jù)已經(jīng)成為我們學(xué)習(xí)、工作和生活中的資源,普通用戶既是數(shù)據(jù)的生產(chǎn)者,也是數(shù)據(jù)的消費者。隨著移動互聯(lián)網(wǎng)和人工智能的迅猛發(fā)展,大數(shù)據(jù)技術(shù)逐漸引起了人們的廣泛興趣,大數(shù)據(jù)對國家發(fā)展也越來越為重要,大數(shù)據(jù)技術(shù)和應(yīng)用的發(fā)展逐步上升到國家戰(zhàn)略地位。從數(shù)據(jù)、信息、知識到大數(shù)據(jù),信息技術(shù)不斷地進行了螺旋式迭代發(fā)展。近些年,各個行業(yè)的業(yè)務(wù)數(shù)據(jù)呈現(xiàn)數(shù)量級增長,導(dǎo)致對數(shù)據(jù)處理的要求越來越高,對大數(shù)據(jù)分析和處理的人才需求也隨之增長。為了適應(yīng)新時代的國家戰(zhàn)略和人才培養(yǎng)需要,教育部于2015年出臺了大數(shù)據(jù)專業(yè)培養(yǎng)文件和政策。為了響應(yīng)教育部大數(shù)據(jù)人才培養(yǎng)目標(biāo),很多高校相繼成立了大數(shù)據(jù)相關(guān)專業(yè),以求不斷培養(yǎng)出能夠從事大數(shù)據(jù)設(shè)計、開發(fā)和分析工作的人才,以滿足社會對大數(shù)據(jù)應(yīng)用人才的需求。
面向工程領(lǐng)域中的大數(shù)據(jù)處理實際需求,培養(yǎng)目標(biāo)明確提出,大數(shù)據(jù)專業(yè)人才應(yīng)該具備基礎(chǔ)的知識和應(yīng)用能力,重點培養(yǎng)學(xué)生運用大數(shù)據(jù)技術(shù)進行工程創(chuàng)新的能力,著力解決科技產(chǎn)業(yè)涌現(xiàn)的新問題。大數(shù)據(jù)科學(xué)實際上是多門學(xué)科融合的專業(yè),其學(xué)生既需要掌握計算機科學(xué)基礎(chǔ)理論,又要熟悉數(shù)學(xué)統(tǒng)計方法,還要精通程序開發(fā)的工程知識,涉及學(xué)科領(lǐng)域廣泛,技術(shù)發(fā)展更新快。目前,一些高校的大數(shù)據(jù)專業(yè)人才培養(yǎng)中學(xué)生理論知識的學(xué)習(xí)局限于計算機基本知識、概念和方法原理,實踐教學(xué)目前還不成熟,處于探索階段。要讓學(xué)生掌握大數(shù)據(jù)存儲、計算和分析方法,培養(yǎng)學(xué)生運用大數(shù)據(jù)技術(shù)解決工程問題的創(chuàng)新思維和創(chuàng)新能力,實踐教學(xué)至關(guān)重要。因此,研究和探索大數(shù)據(jù)專業(yè)實踐教學(xué)具有非常重要的作用和意義。
一、大數(shù)據(jù)認知實踐的教學(xué)現(xiàn)狀及存在問題
目前大數(shù)據(jù)專業(yè)培養(yǎng)方案將Hadoop開發(fā)技術(shù)作為專業(yè)的核心主干課,這是符合實際行業(yè)需求的。雖然專業(yè)的正式名稱為數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù),但是培養(yǎng)目標(biāo)為滿足行業(yè)對大數(shù)據(jù)應(yīng)用人才的需求。從課程體系上來說,既要有能夠培養(yǎng)學(xué)生運用數(shù)理知識、專業(yè)知識和工程知識解決復(fù)雜工程問題能力的課程組,又要有能夠培養(yǎng)學(xué)生運用軟件開發(fā)技術(shù)、數(shù)據(jù)分析方法和工程實踐知識構(gòu)建大數(shù)據(jù)應(yīng)用系統(tǒng)能力的課程組。數(shù)理知識課程包括概率論、數(shù)理統(tǒng)計、線性代數(shù)、高等數(shù)學(xué)等,專業(yè)知識課程包括操作系統(tǒng)原理、數(shù)據(jù)庫原理、計算機系統(tǒng)原理、數(shù)據(jù)結(jié)構(gòu)和算法、大數(shù)據(jù)技術(shù)原理等,軟件開發(fā)技術(shù)課程包括軟件工程、Java程序設(shè)計、C語言程序設(shè)計、Python程序語言設(shè)計等,數(shù)據(jù)分析方法課程包括數(shù)據(jù)統(tǒng)計和分析、數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、自然語言處理等,工程實踐課程包括大數(shù)據(jù)認知實踐、大數(shù)據(jù)工程實踐等。
大數(shù)據(jù)認知實踐在理論學(xué)習(xí)的基礎(chǔ)上,在校內(nèi)開展實踐教學(xué),雖然不是真實數(shù)據(jù)生產(chǎn)場景,但是盡最大可能模擬數(shù)據(jù)生產(chǎn)環(huán)境。傳統(tǒng)的實踐教學(xué)受限于教學(xué)手段和教學(xué)方法,不能最大化展現(xiàn)實際應(yīng)用場景,僅僅作為理論知識的有限拓展,難以實現(xiàn)行業(yè)和企業(yè)對學(xué)生的應(yīng)用能力的培養(yǎng)要求。傳統(tǒng)的實踐教學(xué)涉及的數(shù)據(jù)采集、平臺搭建和模型算法選擇都較為單一,缺乏靈活性,理論知識和實踐內(nèi)容脫節(jié),理論知識不能有效支持實踐內(nèi)容,實踐內(nèi)容也不能鞏固理論知識。傳統(tǒng)的實踐教學(xué)不能滿足大數(shù)據(jù)認知實踐對資源的開銷,大數(shù)據(jù)分布式存儲和計算框架需要服務(wù)器集群,并發(fā)訪問數(shù)據(jù)量大。大數(shù)據(jù)實踐教學(xué)不僅對主機的計算資源和存儲資源有著較高的要求,而且涉及的配置細節(jié)非常煩瑣,需要學(xué)生不斷地加強練習(xí),這對實驗室的硬件環(huán)境和開放時間的要求都要高于傳統(tǒng)的實踐教學(xué)。此外,傳統(tǒng)的實踐教學(xué)手段較為單一,很多情況下就是灌輸一些步驟,先理論后實踐,不能有效激發(fā)學(xué)生主動學(xué)習(xí)和創(chuàng)新的熱情。
二、大數(shù)據(jù)認知實踐教學(xué)改革
(一)大數(shù)據(jù)認知實踐教學(xué)內(nèi)容體系
根據(jù)OBE(Outcome?Based Education)教育理念,大數(shù)據(jù)認知實踐應(yīng)該以學(xué)生的學(xué)習(xí)產(chǎn)出為導(dǎo)向,以行業(yè)應(yīng)用需求為出發(fā)點和落腳點,推進學(xué)練用大數(shù)據(jù)認知實踐教學(xué)改革,強化課程創(chuàng)新,促進教學(xué)優(yōu)化。大數(shù)據(jù)認知實踐教學(xué)應(yīng)該立足社會需求,緊跟時代發(fā)展脈搏,抓住大數(shù)據(jù)應(yīng)用場景,結(jié)合多學(xué)科深度融合交叉,根據(jù)行業(yè)大數(shù)據(jù)需求特點,進行全方位教育教學(xué)改革探索。
面向各個行業(yè)的基本數(shù)據(jù)生產(chǎn),需要培養(yǎng)大數(shù)據(jù)分布存儲系統(tǒng)的研發(fā)人才;面向企業(yè)業(yè)務(wù)提升,需要培養(yǎng)大數(shù)據(jù)分布計算系統(tǒng)的開發(fā)人才;面向機構(gòu)管理決策,需要培養(yǎng)大數(shù)據(jù)處理分析復(fù)合型人才。以需求為導(dǎo)向,目前行業(yè)中的大數(shù)據(jù)存儲大多數(shù)采用的是HDFS分布式存儲系統(tǒng),大數(shù)據(jù)計算系統(tǒng)采用的是MapReduce,而流式實時分析和處理框架則是采用Spark。因此,大數(shù)據(jù)認知實踐教學(xué)實際上是圍繞Hadoop生態(tài)圈開展的。
[數(shù)據(jù)庫結(jié)構(gòu)化數(shù)據(jù) ][文件日志半結(jié)構(gòu)化數(shù)據(jù) ][任務(wù)調(diào)度、業(yè)務(wù)應(yīng)用和數(shù)據(jù)可視化 ][Spark Streaming ][Hive數(shù)據(jù)查詢 ][Spark SQL ][MapReduce離線計算 ][YARN資源管理 ][HDFS分布式存儲 ][HBASE非關(guān)系型數(shù)據(jù)庫 ][Spark內(nèi)存計算 ]
圖1 Hadoop生態(tài)圈
Hadoop是Apache基金會支持的開源大數(shù)據(jù)存儲與計算框架,受到業(yè)界的廣泛認可和青睞。搜索引擎使用Hadoop平臺進行廣告點擊分析,電商網(wǎng)站利用Hadoop進行高可用數(shù)據(jù)存儲和分析,Hadoop平臺不僅包含大數(shù)據(jù)處理功能,還包括自然語言處理、機器學(xué)習(xí)以及云計算方面功能。
(二)大數(shù)據(jù)認知實踐教學(xué)要求和環(huán)境
在開展大數(shù)據(jù)認知實踐教學(xué)之前,需要強調(diào)學(xué)生應(yīng)該掌握的前置課程和知識儲備。Hadoop底層實現(xiàn)源碼是用Java語言編寫的,因此,學(xué)生需要提前掌握Java程序設(shè)計語言以及面向?qū)ο蟮某绦蛟O(shè)計思想。Hadoop部署在Linux操作系統(tǒng)上,學(xué)生需要掌握操作系統(tǒng)知識和Linux操作方法。Hadoop分布式存儲涉及數(shù)據(jù)查詢和持久化,因此,學(xué)生需要掌握數(shù)據(jù)庫原理知識和SQL查詢語句。Hadoop分布式計算可以通過編程實現(xiàn)對數(shù)據(jù)的查詢和聚合,因此,學(xué)生需要掌握Java平臺上的集成開發(fā)環(huán)境IDE(Integrated Development Environment)。
目前大數(shù)據(jù)實踐教學(xué)環(huán)境可以分為自己搭建環(huán)境和第三方實訓(xùn)平臺,兩者各有優(yōu)缺點。自己搭建環(huán)境的優(yōu)勢就是學(xué)生可以全程參與大數(shù)據(jù)服務(wù)器的部署和開發(fā),可以比較廣泛和深入地掌握大數(shù)據(jù)認知實踐知識,其不足之處就是需要進行相關(guān)軟件安裝和組件配置的教學(xué),比較煩瑣。采用第三方實訓(xùn)平臺的優(yōu)勢就是可以通過云服務(wù)器和web控制臺方式進行一鍵部署,提交代碼和運行代碼的操作簡單,其不足之處就是第三方平臺使用的容器包裝了很多實現(xiàn)細節(jié),不利于學(xué)生對大數(shù)據(jù)認知實踐知識的掌握。因此,在實驗室有較高配置資源的情況下,推薦使用自搭實驗環(huán)境。
Hadoop可以分為偽分布式部署和完全分布式部署。Hadoop偽分布式部署利用線程模擬master主節(jié)點和slave從節(jié)點,而Hadoop完全分布式部署利用獨立主機(包括物理上和邏輯上的獨立主機)來分配主從節(jié)點。Hadoop偽分布式部署一般用于數(shù)據(jù)量和計算開銷都不大的場景,也用于對大數(shù)據(jù)技術(shù)進行學(xué)習(xí)的場景。
Hadoop偽分布式部署需要一臺安裝Linux操作系統(tǒng)的主機,一般實驗室的操作系統(tǒng)是支持應(yīng)用較多的Windows系統(tǒng),因此,需要安裝VMware Station,在VMware虛擬機中安裝Linux系統(tǒng)。另外,還需要在Windows中安裝一個可以操作Linux系統(tǒng)的客戶端軟件,例如Xshell,便于后續(xù)操作,將Hadoop安裝包上傳到Linux系統(tǒng)中以及對Hadoop進行配置操作。
Hadoop完全分布式部署包括物理上獨立主機和邏輯上獨立主機。物理上獨立主機的完全分布式部署需要采用分組實踐,例如3人一組,將其中一臺主機作為master節(jié)點,三臺主機都作為slave節(jié)點。邏輯上獨立主機的完全分布式部署需要在Windows系統(tǒng)中安裝VMware Station和Xshell,在VMware虛擬機中安裝3個或者多個Linux系統(tǒng)。Hadoop偽分布式部署和完全分布式部署配置見表1。
(三)大數(shù)據(jù)認知實踐教學(xué)內(nèi)容
大數(shù)據(jù)認知實踐應(yīng)該圍繞教學(xué)目標(biāo)展開,概括來說,教學(xué)目標(biāo)包括掌握大數(shù)據(jù)存儲技術(shù)和大數(shù)據(jù)計算技術(shù)。傳統(tǒng)的軟件工程是將存儲和計算分離,數(shù)據(jù)存儲在磁盤上,計算時再讀到內(nèi)存,多次磁盤I/O操作將極大降低計算效率,并且隨著數(shù)據(jù)量增加,磁盤存儲和內(nèi)存計算資源只能縱向擴展,不能橫向擴展,這種情況顯然不能滿足大數(shù)據(jù)的業(yè)務(wù)需求。為了解決傳統(tǒng)工程中存儲和計算脫節(jié)、無法提供高可用服務(wù)的問題,Hadoop通過提供分布式存儲系統(tǒng)HDFS、分布式計算框架MapReduce、非關(guān)系型數(shù)據(jù)庫Hbase、數(shù)據(jù)倉庫Hive以及內(nèi)存計算框架Spark等,提供并發(fā)處理低延遲的高可用服務(wù)。
HDFS是大數(shù)據(jù)分布式存儲系統(tǒng),通過數(shù)據(jù)塊冗余分布式存儲提供高可用訪問,分布式存儲的橫向擴展是通過增加機器數(shù)量來實現(xiàn)的,既可以突破縱向擴展的瓶頸限制,又可以利用高帶寬訪問,還可以提供多個冗余副本存儲。HDFS在master節(jié)點即NameNode上管理整個分布式文件系統(tǒng)的元數(shù)據(jù)信息,包括文件名、文件大小、文件塊數(shù)、塊ID以及塊存儲位置。HDFS在slave節(jié)點即DataNode上存儲擁有多個備份數(shù)據(jù)塊的數(shù)據(jù)文件。為了防止master節(jié)點宕機出現(xiàn)的單點故障,還需要準(zhǔn)備一個備份節(jié)點即SecondNameNode。同時,master節(jié)點通過RPC(Remote Procedure Call)心跳機制檢測各個DataNode的工作狀態(tài)。HDFS分布式存儲系統(tǒng)的實踐教學(xué)應(yīng)包含HDFS文件系統(tǒng)的安裝和配置、HDFS文件系統(tǒng)的目錄文件操作命令、用API訪問HDFS文件系統(tǒng)的編程方法等(見表2)。
MapReduce是基于HDFS的大數(shù)據(jù)分布式計算框架或者編程模型,為程序員提供面向業(yè)務(wù)的編程服務(wù),而不需要考慮分布式計算中出現(xiàn)的諸如任務(wù)調(diào)度、分配、文件切片等各種具體問題,簡化了處理事務(wù),提高了編程工作效率。 MapReduce編程分為Mapper和Reducer兩個階段,前者是映射階段,將讀取的數(shù)據(jù)映射為key?value類型的迭代器,后者為聚合階段,將迭代器中的相同的key做聚合,進行統(tǒng)計分析。完成Mapper和Reducer之后,編寫驅(qū)動類Driver的入口函數(shù)。然后,將代碼導(dǎo)出為jar包,提交到master節(jié)點上運行。MapReduce分布式計算框架的實踐教學(xué)內(nèi)容見表3。
Hbase是面向列的開源數(shù)據(jù)塊,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不同,其同一列的數(shù)值類型一樣,將同一列連續(xù)存儲更加符合客觀規(guī)律。非關(guān)系型數(shù)據(jù)庫Hbase的實踐教學(xué)內(nèi)容見表4。
Hive是基于Hadoop的數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化數(shù)據(jù)映射為一個表,在此基礎(chǔ)上提供類SPL的查詢語句,其實現(xiàn)的原理是將查詢語句映射為MapReduce任務(wù)。Hive可以處理不同來源的數(shù)據(jù),包括數(shù)據(jù)庫、文件和網(wǎng)絡(luò)日志等。數(shù)據(jù)倉庫工具Hive的實踐教學(xué)內(nèi)容見表5。
Spark是集實時流處理和交互查詢?yōu)橐惑w的內(nèi)存計算框架,通過彈性分布式數(shù)據(jù)集RDD(Resilient Distributed Datasets)實現(xiàn)高容錯性的內(nèi)存抽象彈性機制。對RDD的操作有轉(zhuǎn)換操作和執(zhí)行操作,轉(zhuǎn)換操作是窄依賴,并沒有在內(nèi)存中真正執(zhí)行,由此可以進行優(yōu)化操作,只有在執(zhí)行操作對應(yīng)的寬依賴的操作被處理時,數(shù)據(jù)才被溢寫到磁盤上,數(shù)據(jù)的恢復(fù)完全可以通過依賴關(guān)系進行。實時流處理Spark的實踐教學(xué)內(nèi)容見表6。
三、結(jié)束語
為了提高大數(shù)據(jù)相關(guān)專業(yè)培養(yǎng)人才效果,開展大數(shù)據(jù)認識實踐教學(xué)非常重要,不僅可以強化學(xué)生對大數(shù)據(jù)科學(xué)系統(tǒng)知識的理解和掌握,而且可以更加契合市場需求,向社會輸出更加合格的人才。針對目前大數(shù)據(jù)實踐教學(xué)中存在的問題,結(jié)合大數(shù)據(jù)專業(yè)培養(yǎng)目標(biāo)和方案,本文提出了理實協(xié)同、多層次的大數(shù)據(jù)認知實踐課程教學(xué)體系和內(nèi)容,從生產(chǎn)應(yīng)用場景探索大數(shù)據(jù)認知實踐教學(xué)改革思路。
[ 參 考 文 獻 ]
[1] 張俊麗,姚香秀,程茜,等. 基于OBE 理念的數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)人才培養(yǎng)創(chuàng)新研究與實踐[J]. 大學(xué)教育, 2022(4):185-187.
[2] 周晴紅. Hadoop大數(shù)據(jù)開發(fā)技術(shù)課程實踐教學(xué)[J]. 辦公自動化,2021,26(20):20-22.
[3] 曾曉云.大數(shù)據(jù)人才培養(yǎng)的實踐教學(xué)體系研究[J].湖南郵電職業(yè)技術(shù)學(xué)院學(xué)報,2022,21(1):84-86.
[4] 李方東.數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)實驗實踐教學(xué)探析[J].長春大學(xué)學(xué)報,2021,31(2):88-91.
[5] 梁晶,胡新榮. Hadoop 大數(shù)據(jù)開發(fā)課程實踐教學(xué)研究[J].計算機教育,2020(2):166-169.
[6] 劉伯紅,吳思遠,閻英,等.校企合作下大數(shù)據(jù)人才培養(yǎng)實踐教學(xué)模式研究[J].軟件導(dǎo)刊,2023,22(6):196-200.
[7] 孫開偉,鄧欣,王進. 新工科背景下數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)實踐教學(xué)體系研究[J].高教學(xué)刊,2023,9(14):5-8.
[8] 石兵,熊盛武,饒文碧,等. 數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)建設(shè)研究與實踐[J].計算機教育,2021(4):88-92.
[9] 夏官夢,王健.新工科背景下計算機類人才培養(yǎng)的探索與實踐[J].教育現(xiàn)代化,2020,7(48):26-29.
[責(zé)任編輯:雷 艷]