惲鴻峰
linux 作為一款開(kāi)源的類(lèi)UNIX操作系統(tǒng),繼承了UNIX 以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,成為了一個(gè)安全性很高的多用戶(hù)、多任務(wù)的網(wǎng)絡(luò)操作系統(tǒng),現(xiàn)在已經(jīng)成為企業(yè)級(jí)應(yīng)用推薦的操作系統(tǒng)平臺(tái)。隨著云時(shí)代的到來(lái),大數(shù)據(jù)越來(lái)越受到人們的關(guān)注,對(duì)商品營(yíng)銷(xiāo)、疫情防控、交通規(guī)劃、金融服務(wù)等領(lǐng)域產(chǎn)生著積極的影響,而大數(shù)據(jù)的應(yīng)用工具,如Hadoop、Storm、Hive、Spark、NoSQL等,基本上都是運(yùn)行在基于Linux 操作系統(tǒng)的集群服務(wù)器上[1]。因此,學(xué)習(xí)大數(shù)據(jù)技術(shù),必須要理解Linux 的特點(diǎn)、熟練掌握Linux 環(huán)境的搭建和基本操作。
首先,我們搜集了目前出售的相關(guān)書(shū)籍、MOOC 平臺(tái)課程大綱、線(xiàn)上培訓(xùn)機(jī)構(gòu)和知名技術(shù)交流平臺(tái)的相關(guān)材料,整理了夏輝等主編的《Linux 系統(tǒng)與大數(shù)據(jù)應(yīng)用》[2]、燕彩蓉等主編的《Linux 系統(tǒng)與大數(shù)據(jù)應(yīng)用》[3]、北風(fēng)網(wǎng)的培訓(xùn)課程《大數(shù)據(jù)運(yùn)維之必知必會(huì)- Linux 基礎(chǔ)教程》[4]等若干份教學(xué)材料,對(duì)課程的收錄內(nèi)容進(jìn)行統(tǒng)計(jì)、分析和匯總,找出普遍包含的教學(xué)內(nèi)容,作為L(zhǎng)inux 操作系統(tǒng)課程的基本教學(xué)內(nèi)容;對(duì)于包含較少的課程內(nèi)容進(jìn)行評(píng)估,分析大數(shù)據(jù)的應(yīng)用需求,明確其作為教學(xué)內(nèi)容的價(jià)值。其次,走訪(fǎng)經(jīng)驗(yàn)比較豐富的大數(shù)據(jù)研發(fā)工程師、數(shù)據(jù)分析師,確定崗位必備的linux 系統(tǒng)知識(shí),培養(yǎng)實(shí)際工作能力和就業(yè)競(jìng)爭(zhēng)力,真正對(duì)接企業(yè)的人才需求。最后,考慮民辦應(yīng)用型本科院校的人才培養(yǎng)定位,強(qiáng)化實(shí)踐、“做中學(xué)”為主要教學(xué)模式,綜合考慮課時(shí)安排和應(yīng)用的因素,避免教學(xué)內(nèi)容上“廣而全”,對(duì)知識(shí)點(diǎn)進(jìn)行篩選、精簡(jiǎn)、優(yōu)化,根據(jù)邏輯關(guān)系對(duì)每一部分的知識(shí)點(diǎn)進(jìn)行重組,進(jìn)行知識(shí)模塊劃分,面向大數(shù)據(jù)技術(shù)的Linux 操作系統(tǒng)教學(xué)內(nèi)容結(jié)構(gòu)如圖1 所示。
Linux 系統(tǒng)基礎(chǔ)部分包括5 個(gè)模塊,采用項(xiàng)目引導(dǎo)式教學(xué),在有限的時(shí)間內(nèi)熟悉linux 系統(tǒng)的操作環(huán)境、基本理念、常用命令、管理方法以及基本開(kāi)發(fā)方法。
(1)Linux 系統(tǒng)概述與安裝。包括Unix 的發(fā)展過(guò)程、Linux的發(fā)展歷史和發(fā)行版、開(kāi)源軟件、Linux 應(yīng)用領(lǐng)域、系統(tǒng)分區(qū)的基本知識(shí)、系統(tǒng)的安裝、Linux 系統(tǒng)下大數(shù)據(jù)平臺(tái)、Linux 的學(xué)習(xí)方法,使學(xué)生快速了解Linux 系統(tǒng)。通過(guò)瀏覽Linux 內(nèi)核官網(wǎng)、介紹著名的信息統(tǒng)計(jì)網(wǎng)站www.netscaft.com 的使用等多種途徑引導(dǎo)學(xué)生了解Linux 的前沿發(fā)展及應(yīng)用,激發(fā)學(xué)生對(duì)linux 的興趣。雖然可以安裝雙系統(tǒng),但專(zhuān)業(yè)學(xué)習(xí)過(guò)程中多數(shù)情況下使用Windows 系統(tǒng),安裝雙系統(tǒng)會(huì)造成資源的浪費(fèi),目前越來(lái)越多的企業(yè)采用CentOS 7,因此,學(xué)生采用虛擬機(jī)安裝CentOS 7,安裝好實(shí)驗(yàn)環(huán)境是學(xué)好Linux 關(guān)鍵的第一步。
(2)文件、磁盤(pán)管理。學(xué)習(xí)Linux 文件系統(tǒng)的基礎(chǔ)知識(shí),包括文件類(lèi)別、文件系統(tǒng)目錄結(jié)構(gòu)、基本特點(diǎn);學(xué)習(xí)文件基本操作命令,包括如何切換目錄,如何新建、復(fù)制、移動(dòng)、刪除、查看、查找文件,如何創(chuàng)建鏈接;互聯(lián)網(wǎng)上下載的Linux 安裝文件幾乎都是壓縮文件,因此必須學(xué)習(xí)Linux 系統(tǒng)下如何壓縮、解壓縮文件或目錄;如何分區(qū)、格式化和掛載外部存儲(chǔ)設(shè)備。Linux 中的命令及命令的參數(shù)選項(xiàng)難記易忘,應(yīng)關(guān)注命令選項(xiàng)的通用性,通過(guò)實(shí)踐、案例掌握常用選項(xiàng),避免關(guān)注過(guò)多的技術(shù)細(xì)節(jié)和選項(xiàng)參數(shù)配置,注重引導(dǎo)學(xué)生養(yǎng)成運(yùn)用man、help 查看幫助信息的好習(xí)慣,靈活掌握和使用常用命令,為日后大數(shù)據(jù)的應(yīng)用打下基礎(chǔ)。
(3)Linux 使用者管理。學(xué)習(xí)用戶(hù)和用戶(hù)組管理,包括用戶(hù)和用戶(hù)組之間的關(guān)系、配置文件和相關(guān)命令;學(xué)習(xí)文件權(quán)限管理,linux 的權(quán)限管理將文件管理和用戶(hù)管理相結(jié)合,屬于Linux的基本內(nèi)容,使用者必須掌握;學(xué)習(xí)進(jìn)程管理,大數(shù)據(jù)工程師需要查看進(jìn)程相關(guān)信息以排查系統(tǒng)故障,檢測(cè)CPU、內(nèi)存、網(wǎng)絡(luò)I/O等各種開(kāi)銷(xiāo),因此必須掌握進(jìn)程管理的相關(guān)命令。進(jìn)程管理、用戶(hù)和用戶(hù)組的管理通過(guò)與Windows 系統(tǒng)的類(lèi)比,幫助學(xué)生理解。
(4)網(wǎng)絡(luò)及服務(wù)配置。目前Linux 在Internet 和局域網(wǎng)服務(wù)器領(lǐng)域所占的市場(chǎng)份額越來(lái)越大,因此Linux 網(wǎng)絡(luò)和服務(wù)器的配置成為了Linux 系統(tǒng)的重要部分,教學(xué)內(nèi)容包括linux 網(wǎng)絡(luò)配置、SSH 服務(wù)、Web 和FTP 服務(wù)器配置。學(xué)生動(dòng)手配置,實(shí)現(xiàn)虛擬機(jī)環(huán)境下Linux 訪(fǎng)問(wèn)網(wǎng)絡(luò)。
(5)shell 編程及程序開(kāi)發(fā)。shell 腳本在Linux 系統(tǒng)日常管理和大數(shù)據(jù)開(kāi)發(fā)工作中是必不可少的,學(xué)習(xí)vim 編輯器的使用,通過(guò)案例介紹Shell 腳本程序設(shè)計(jì)的語(yǔ)法結(jié)構(gòu)、控制語(yǔ)句變量定義及賦值、函數(shù)等,引導(dǎo)學(xué)生進(jìn)入shell 腳本的世界;學(xué)習(xí)gcc 編譯器、gdb 調(diào)試工具以及make 工具的使用,通過(guò)實(shí)例了解C 程序的開(kāi)發(fā)方法;學(xué)習(xí)如何在Linux 系統(tǒng)中安裝Java。由于目前常用的大數(shù)據(jù)平臺(tái)Hadoop 的運(yùn)行是依賴(lài)于Java 的,后續(xù)要學(xué)習(xí)Hadoop 安裝與使用,考慮學(xué)時(shí)和后續(xù)課程安排,剔除了主要用于數(shù)據(jù)處理的python 的安裝學(xué)習(xí),主要學(xué)習(xí)最新版JDK的下載、安裝和配置環(huán)境變量。
大數(shù)據(jù)基礎(chǔ)應(yīng)用部分包括2 個(gè)模塊,目的是初步了解大數(shù)據(jù)理念、相關(guān)技術(shù)。
(1)大數(shù)據(jù)開(kāi)發(fā)平臺(tái)。學(xué)習(xí)大數(shù)據(jù)的概念、特點(diǎn)與應(yīng)用前景,介紹大數(shù)據(jù)的2 個(gè)主流平臺(tái)Hadoop 和Spark 的應(yīng)用場(chǎng)景、安裝與配置。Hadoop 組件較多,應(yīng)有所取舍,主要學(xué)習(xí)文件存儲(chǔ)系統(tǒng)HDFS、運(yùn)算系統(tǒng)Map- Reduce 和資源調(diào)配系統(tǒng)Yarn三個(gè)核心組件。通過(guò)統(tǒng)計(jì)和檢索案例了解Hadoop 和Spark 的作用和基本使用方法。
(2)大數(shù)據(jù)分析工具。了解常用的分析工具,主要學(xué)習(xí)Hive數(shù)據(jù)倉(cāng)庫(kù)工具的工作原理,嵌入式、獨(dú)立式安裝及配置,通過(guò)案例學(xué)習(xí)Hive 基本查詢(xún)分析方法。學(xué)生動(dòng)手完成Hive 的獨(dú)立式安裝與應(yīng)用,使用MySQL 數(shù)據(jù)庫(kù)作為數(shù)據(jù)元信息的存儲(chǔ),這種場(chǎng)景在實(shí)際的應(yīng)用中是最常見(jiàn)的。
通過(guò)前述Linux 操作系統(tǒng)教學(xué)內(nèi)容的構(gòu)建,本課程的具體課時(shí)安排如表1 所示,本課時(shí)安排適用于32 學(xué)時(shí)理論+16 學(xué)時(shí)實(shí)驗(yàn)(共48 學(xué)時(shí))的課程教學(xué)。
表1
大數(shù)據(jù)和云計(jì)算時(shí)代,Linux 系統(tǒng)越來(lái)越重要,Linux 操作系統(tǒng)的教學(xué)內(nèi)容應(yīng)針對(duì)大數(shù)據(jù)的需求做出調(diào)整,根據(jù)企業(yè)實(shí)際需要合理設(shè)計(jì)教學(xué)內(nèi)容,使學(xué)生掌握和大數(shù)據(jù)相關(guān)的Linux 系統(tǒng)知識(shí),為進(jìn)一步學(xué)習(xí)大數(shù)據(jù)相關(guān)技術(shù)打下堅(jiān)實(shí)的基礎(chǔ)。