《大數(shù)據(jù)技術實戰(zhàn)案例教程》-教學大綱_第1頁
《大數(shù)據(jù)技術實戰(zhàn)案例教程》-教學大綱_第2頁
《大數(shù)據(jù)技術實戰(zhàn)案例教程》-教學大綱_第3頁
《大數(shù)據(jù)技術實戰(zhàn)案例教程》-教學大綱_第4頁
《大數(shù)據(jù)技術實戰(zhàn)案例教程》-教學大綱_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

《大數(shù)據(jù)技術實戰(zhàn)案例教程ISBN978-7-5606-6679-2》教學大綱編寫者:徐魯輝******《大數(shù)據(jù)技術原理及應用》課程教學大綱課程基本信息(一)課程中文名稱:大數(shù)據(jù)技術原理及應用代碼:********(二)課程英文名稱:PrinciplesandApplicationsofBigDataTechnology(三)課程性質(zhì):專業(yè)核心課程(四)課程學分:3學分(理論2學分實驗1學分)(五)適用專業(yè):******(六)開課單位:******課程教學目標(一)課程定位《大數(shù)據(jù)技術原理及應用》是計算機科學與技術、數(shù)據(jù)科學與大數(shù)據(jù)技術等專業(yè)的一門專業(yè)核心課程。該課程著重講述大數(shù)據(jù)技術的知識體系,闡明其基本原理,引導學生進行初級實踐和了解相關應用,培養(yǎng)學生運用大數(shù)據(jù)平臺搭建、數(shù)據(jù)采集與遷移、大數(shù)據(jù)存儲與管理、大數(shù)據(jù)處理與分析等方法和技術工具完成大數(shù)據(jù)應用的能力,在整個大數(shù)據(jù)課程體系中起著承前啟后重要作用。該課程由理論教學和實驗教學兩個部分組成,其先修課程包括Java語言程序設計、Python語言程序設計、Scala語言程序設計、Linux操作系統(tǒng)、數(shù)據(jù)庫原理等,后續(xù)課程包括機器學習、Spark大數(shù)據(jù)開發(fā)技術、Flink大數(shù)據(jù)開發(fā)技術、數(shù)據(jù)可視化技術等。(二)課程目標《大數(shù)據(jù)技術原理及應用》圍繞“構建知識體系、闡明基本原理、引導初級實踐、了解相關應用”的指導思想,著重講述大數(shù)據(jù)技術的基本原理、基本方法、技術工具和相關應用,幫助學生構建完整的大數(shù)據(jù)技術知識體系,使學生了解大數(shù)據(jù)技術在行業(yè)領域中的最新發(fā)展趨勢和前沿知識,熟悉大數(shù)據(jù)應用的整個生命周期,能夠熟練使用Hadoop、Spark、Flink等主流大數(shù)據(jù)平臺及其生態(tài)系統(tǒng)中的技術工具完成基本的大數(shù)據(jù)應用閉環(huán)操作,達到知行合一、以用促學的目的。知識目標:1.理解大數(shù)據(jù)處理平臺Hadoop的生態(tài)系統(tǒng)和體系架構,熟練掌握在Linux環(huán)境下部署全分布模式Hadoop集群;2.理解分布式文件系統(tǒng)HDFS的體系架構、文件存儲機制和數(shù)據(jù)讀寫過程,熟練掌握通過HDFSWebUI、HDFSShell、HDFSJavaAPI三大接口實現(xiàn)HDFS文件的操作和管理;3.理解分布式計算框架MapReduce的編程思想和作業(yè)執(zhí)行流程,了解MapReduceWebUI和MapReduceShell接口,熟練掌握通過Java語言編寫MapReduce程序,完成海量數(shù)據(jù)的離線分析;4.理解分布式協(xié)調(diào)框架ZooKeeper的工作原理和數(shù)據(jù)模型,熟練掌握在Linux環(huán)境下部署ZooKeeper集群、使用ZooKeeperShell服務端命令和客戶端命令;5.理解Hive的體系架構和數(shù)據(jù)模型,熟練掌握在Linux環(huán)境下部署本地模式Hive,綜合運用HiveQL語句進行海量結構化數(shù)據(jù)的離線分析;6.理解Flume的體系架構,熟練掌握在Linux環(huán)境下部署Flume,靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集;7.理解Kafka的體系架構,熟練掌握在Linux環(huán)境下部署Kafka集群,使用KafkaShell命令完成分布式消息的發(fā)布和訂閱;8.理解Spark的生態(tài)系統(tǒng)、運行架構,理解RDD設計思想,掌握RDD創(chuàng)建和操作,熟練掌握在Linux環(huán)境下部署Spark集群,使用Python、Java或Scala進行RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理和實時處理;9.理解Flink的技術棧、運行架構、編程模型和應用程序結構,熟練掌握在Linux環(huán)境下部署FlinkStandalone集群,使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程,實現(xiàn)海量數(shù)據(jù)的批處理和流計算。能力目標:培養(yǎng)學生學以致用,能夠綜合利用Hadoop、Spark、Flink等大數(shù)據(jù)平臺及其生態(tài)中各個工具解決實際大數(shù)據(jù)應用方面的基本問題,提高學生閱讀外文科技文獻能力,增強學生發(fā)現(xiàn)問題、分析問題、解決問題能力,與學科競賽和項目緊密結合,穩(wěn)步培養(yǎng)和提高學生的動手實踐能力、自主創(chuàng)新能力、團隊協(xié)作能力、寫作表達能力。情感目標:通過對我國大數(shù)據(jù)技術、傳統(tǒng)優(yōu)秀文化的介紹,增強學生的民族自豪感,提升學生的愛國主義精神,增強文化自信;將專業(yè)知識與服務社會相結合,培養(yǎng)學生的社會責任感,樹立正確三觀,使學生更為深刻的理解專業(yè)內(nèi)涵,提高學習內(nèi)驅(qū)力,培養(yǎng)科學素養(yǎng),內(nèi)化為道德準則、科學思維和行為規(guī)范。課程教學內(nèi)容1.理論教學第一章部署全分布模式Hadoop集群內(nèi)容與目標:了解Hadoop功能、起源和版本;理解Hadoop生態(tài)系統(tǒng)組成及各組件作用;理解Hadoop體系架構;掌握Hadoop部署要點包括運行環(huán)境、運行模式和主要配置文件等;熟練掌握在Linux環(huán)境下部署全分布模式Hadoop集群。1.1初識Hadoop1.2Hadoop生態(tài)系統(tǒng)1.3Hadoop體系架構1.4Hadoop部署要點1.4.1Hadoop運行環(huán)境1.4.2Hadoop運行模式1.4.3Hadoop配置文件1.5綜合實戰(zhàn):部署全分布模式Hadoop集群重點難點:重點為理解Hadoop的生態(tài)系統(tǒng)、體系架構,掌握部署要點,熟練掌握在Linux環(huán)境下部署全分布模式Hadoop集群;難點為熟練掌握在Linux環(huán)境下部署全分布模式Hadoop集群。學習要求:課前查閱資料,預習大數(shù)據(jù)處理平臺Hadoop;課后參照實驗指導書,自行實踐部署Hadoop。思考題(案例):部署Hadoop單機模式、偽分布模式、全分布模式的異同點。作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐部署Hadoop。(3)課后查閱資料,試讀Google論文《TheGoogleFileSystem》,預習分布式文件系統(tǒng)HDFS。課程思政:(1)介紹Hadoop發(fā)展史,學習前輩們刻苦鉆研、攻堅克難的科學素養(yǎng)。(2)將唯物辯證法中整體與局部思想融入Hadoop設計原理講述中,Hadoop版本選擇可以和“具體問題具體分析”思想融合。(3)部署Hadoop實驗部分則可以培養(yǎng)學生的自學能力和實踐能力,將提高學生科學素養(yǎng)滲透到實驗中。第二章HDFS實戰(zhàn)內(nèi)容與目標:了解HDFS功能、來源和特點;理解HDFS體系架構及NameNode和DataNode作用;理解HDFS文件存儲原理,包括數(shù)據(jù)塊、副本策略、數(shù)據(jù)讀取過程、數(shù)據(jù)寫入過程;熟練掌握通過HDFSWebUI、HDFSShell、HDFSJavaAPI三大接口實現(xiàn)HDFS文件的操作和管理。2.1初識HDFS2.2HDFS體系架構2.3HDFS文件存儲原理2.3.1數(shù)據(jù)塊Block2.3.2副本存放策略2.3.3數(shù)據(jù)讀取2.3.4數(shù)據(jù)寫入2.4HDFS接口2.4.1HDFSWebUI2.4.2HDFSShell2.4.3HDFSJavaAPI2.5HDFS高可靠性機制2.5.1HDFSNameNodeHA高可用機制2.5.2HDFSNameNodeFederation聯(lián)邦機制2.6綜合實戰(zhàn):HDFS實戰(zhàn)重點難點:重點為理解HDFS的體系架構、文件存儲原理,熟練掌握通過HDFSWebUI、HDFSShell、HDFSJavaAPI三大接口實現(xiàn)HDFS文件的操作和管理;難點為理解HDFS的文件存儲原理,熟練掌握通過HDFSJavaAPI編程實現(xiàn)HDFS文件的操作和管理。學習要求:課前查閱資料,預習Hadoop分布式文件系統(tǒng)HDFS;課后參照實驗指導書,自行實踐HDFSWebUI的基本使用,HDFSShell常用命令的使用,HDFSJavaAPI編程。思考題(案例):分布式文件系統(tǒng)的設計需求和設計目標。作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐HDFSWebUI、HDFSShell、HDFSJavaAPI。(3)課后查閱資料,試讀Google論文《MapReduce:SimplifiedDataProcessingonLargeClusters》,預習分布式計算框架MapReduce。課程思政:(1)由HDFS的優(yōu)缺點引入唯物辯證法中“矛盾是對立統(tǒng)一的”,因引入中國優(yōu)秀傳統(tǒng)文化《呂氏春秋·用眾》:“物固莫不有長;莫不有短;人亦然。故善學者假人之長補其短。”培養(yǎng)學生要樹立終身學習的意識,取長補短,不斷完善自我、超越自我。(2)由HDFS單點故障問題引入“主次矛盾思維——瓶頸法”,培養(yǎng)學生的科學素養(yǎng)。第三章MapReduce編程內(nèi)容與目標:了解MapReduce功能、來源、設計思想;理解MapReduce作業(yè)執(zhí)行流程;掌握MapReduce數(shù)據(jù)類型,了解可序列化和反序列化;熟練掌握MapReduce示例程序詞頻統(tǒng)計WordCount的執(zhí)行流程及代碼編寫;了解MapReduceWebUI和MapReduceShell接口,掌握MapReduceJavaAPI編程接口;熟練掌握通過Java語言編寫MapReduce程序,完成海量數(shù)據(jù)的離線分析。3.1初識MapReduce3.2MapReduce作業(yè)執(zhí)行流程3.3MapReduce入門案例WordCount剖析3.3.1TokenizerMapper類3.3.2IntSumReducer類3.3.3main()函數(shù)3.3.4向Hadoop集群提交并運行WordCount3.4MapReduce數(shù)據(jù)類型3.5MapReduce接口3.5.1MapReduceWebUI3.5.2MapReduceShell3.5.3MapReduceJavaAPI3.6綜合實戰(zhàn):MapReduce編程重點難點:重點為理解MapReduce作業(yè)執(zhí)行流程,熟練掌握MapReduce示例程序詞頻統(tǒng)計WordCount的執(zhí)行流程及代碼編寫;難點為理解MapReduce作業(yè)執(zhí)行流程,熟練掌握通過Java語言編寫MapReduce程序,完成海量數(shù)據(jù)的離線分析。學習要求:課前查閱資料,預習Hadoop分布式計算框架MapReduce;課后參照實驗指導書,自行實踐MapReduceWebUI、MapReduceShell的基本使用,MapReduce基本編程。思考題(案例):MapReduce可用于對數(shù)據(jù)進行排序,一種想法是利用MapReduce的自動排序功能,即默認情況下,Reduce的輸出結果是有序的,則可以只使用一個Reducer來對數(shù)據(jù)進行處理、輸出,則結果就是有序的了。但這樣的排序過程無法充分利用MapReduce的分布式優(yōu)點。試設計一個基于MapReduce的排序算法,假設數(shù)據(jù)均位于[1,100],Reducer數(shù)量為4,升序輸出或降序輸出均可。作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐MapReduceWebUI、MapReduceShell,并嘗試簡單的MapReduce編程。(3)課后查閱資料,預習分布式協(xié)調(diào)框架ZooKeeper。課程思政:由MapReduce設計思想“分而治之”,引入秦始皇實施的郡縣制,并引入《孫子兵法》的《兵勢》篇“治眾如治寡,分數(shù)是也”,讓學生感受中國璀璨歷史,增強民族自信心和自豪感,培養(yǎng)學生踐行社會主義核心價值觀中的“愛國”。第四章部署ZooKeeper集群和ZooKeeper實戰(zhàn)內(nèi)容與目標:了解ZooKeeper功能、起源和應用場景;理解ZooKeeper體系架構和工作原理;理解ZooKeeper數(shù)據(jù)模型;掌握ZooKeeper部署要點包括運行環(huán)境、運行模式和配置文件zoo.cfg、myid等;掌握ZooKeeperShell命令,了解ZooKeeper四字命令和ZooKeeperJavaAPI;熟練掌握在Linux環(huán)境下部署ZooKeeper集群、使用ZooKeeperShell服務端命令、客戶端命令。4.1初識ZooKeeper4.2ZooKeeper工作原理4.3ZooKeeper數(shù)據(jù)模型4.4ZooKeeper部署要點4.4.1ZooKeeper運行環(huán)境4.4.2ZooKeeper運行模式4.4.3ZooKeeper配置文件4.5ZooKeeper接口4.5.1ZooKeeper四字命令4.5.2ZooKeeperShell4.5.3ZooKeeperJavaAPI4.6綜合實戰(zhàn):部署ZooKeeper集群和ZooKeeper實戰(zhàn)重點難點:重點為理解ZooKeeper的工作原理、數(shù)據(jù)模型,熟練掌握在Linux環(huán)境下部署ZooKeeper集群、使用ZooKeeperShell服務端命令、客戶端命令;難點為理解ZooKeeper的工作原理。學習要求:課前查閱資料,預習分布式協(xié)調(diào)框架ZooKeeper;課后參照實驗指導書,自行實踐ZooKeeper集群的部署,ZooKeeperShell常用命令的使用。思考題(案例):假設有兩個線程,兩個線程要同時到MySQL中更新一條數(shù)據(jù),對數(shù)據(jù)庫中的數(shù)據(jù)進行累加更新。由于在分布式環(huán)境下,這兩個線程可能存在于不同機器上的不同JVM進程中,所以這兩個線程的關系就是跨主機和跨進程的,使用Java中的synchronized鎖是無法實現(xiàn)的。思考如何使用ZooKeeper實現(xiàn)分布式鎖?作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐ZooKeeper集群的部署,ZooKeeperShell常見命令的使用。(3)課后查閱資料,試讀Google論文《Bigtable:ADistributedStorageSystemforStructuredData》,預習分布式數(shù)據(jù)庫HBase。課程思政:ApacheZooKeeper是GoogleChubby的開源實現(xiàn),和Chubby相比,Zookeeper做了很多突破,由此引入魯迅先生的《拿來主義》,“運用腦髓,放出眼光,自己來拿”,培養(yǎng)學生批判地繼承文化遺產(chǎn),取其精華去其糟粕,繼而延伸到專業(yè)編程能力培養(yǎng)上,先模仿后修改再創(chuàng)新。第五章部署本地模式Hive和Hive實戰(zhàn)內(nèi)容與目標:了解Hive功能、來源和優(yōu)缺點;理解Hive體系架構及各個組件功能;掌握Hive數(shù)據(jù)類型,包括基本數(shù)據(jù)類型和集合數(shù)據(jù)類型;理解Hive數(shù)據(jù)模型,包括表、分區(qū)和分桶;掌握Hive函數(shù),主要為內(nèi)置函數(shù);理解Hive部署要點包括運行環(huán)境、運行模式和配置文件hive-site.xml、hive-env.sh等;掌握HiveQL中的DDL、DML、select語句,了解接口HWI和HiveAPI;熟練掌握在Linux環(huán)境下部署本地模式Hive,綜合運用HiveQL語句進行海量結構化數(shù)據(jù)的離線分析。5.1初識Hive5.2Hive體系架構5.3Hive數(shù)據(jù)類型5.4Hive數(shù)據(jù)模型5.5Hive函數(shù)5.6Hive部署要點5.6.1Hive運行環(huán)境5.6.2Hive部署模式5.6.3Hive配置文件5.7Hive接口5.7.1HiveShell5.7.2HiveWebInterface(HWI)5.7.3HiveAPI5.8綜合實戰(zhàn):部署本地模式Hive和Hive實戰(zhàn)重點難點:重點為理解Hive的體系架構、數(shù)據(jù)模型,掌握Hive函數(shù),掌握HiveQL中的DDL、DML、select語句;難點為掌握Hive函數(shù),綜合運用HiveQL語句進行海量結構化數(shù)據(jù)的離線分析。學習要求:課前查閱資料,預習數(shù)據(jù)倉庫Hive;課后參照實驗指導書,自行實踐Hive的部署、HiveQL語句的使用。思考題(案例):使用Hive完成用戶訪問量TOP5統(tǒng)計。數(shù)據(jù)字段格式為:url、session_id、referer、ip、end_user_id、city_id,分隔符為制表符。作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐Hive集群的部署、HiveQL語句、Hive內(nèi)置函數(shù)的使用、HiveShell命令的使用。(3)課后查閱資料,預習日志采集工具Flume。課程思政:(1)由Hive數(shù)據(jù)倉庫引入商業(yè)智能(BusinessIntelligence,簡稱:BI),指用現(xiàn)代數(shù)據(jù)倉庫技術、線上分析處理技術、數(shù)據(jù)挖掘和數(shù)據(jù)展現(xiàn)技術進行數(shù)據(jù)分析以實現(xiàn)商業(yè)價值?,F(xiàn)代信息技術日新月異,引導學生實時關注大數(shù)據(jù)最新技術和發(fā)展趨勢,培養(yǎng)學生建立起終身學習的目標、勇攀高峰的科學精神。(2)HiveQL實踐時,缺少一個逗號、一個引號等微小問題就會導致結果不正確,引導學生遵守工程技術規(guī)范,養(yǎng)成認真嚴謹?shù)闹螌W態(tài)度。第六章Flume實戰(zhàn)內(nèi)容與目標:了解Flume功能、來源、特點和版本;理解Flume體系架構及Source、Sink、Channel功能;理解Flume部署要點包括運行環(huán)境、運行模式、配置文件flume-env.sh;掌握FlumeShell命令的使用;熟練掌握在Linux環(huán)境下部署Flume,靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集。6.1初識Flume6.2Flume體系架構6.3Flume部署要點6.3.1Flume運行環(huán)境6.3.2Flume運行模式6.3.3Flume配置文件6.4FlumeShell常用命令6.5綜合實戰(zhàn):Flume實戰(zhàn)重點難點:重點為理解Flume的體系架構,理解Flume部署要點包括運行環(huán)境、運行模式、配置文件,熟練掌握在Linux環(huán)境下部署Flume,靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集;難點為靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集。學習要求:課前查閱資料,預習Flume;課后參照實驗指導書,自行實踐Flume的部署和簡單使用。思考題(案例):Flume的部署類型包括單一流程、多代理流程、流的合并、多路復用流,參考官網(wǎng)嘗試實踐各種類型的配置。作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐Flume的部署和簡單使用。(3)課后查閱資料,預習分布式消息系統(tǒng)Kafka。課程思政:由課堂教學中Flume來源的講述,養(yǎng)成批判性思維,培養(yǎng)學生文獻檢索能力、獨立解決問題能力。第七章Kafka實戰(zhàn)內(nèi)容與目標:了解Kafka功能、來源和特點;理解Kafka體系架構及Broker、Producer和Customer三種角色功能;理解Kafka部署要點包括運行環(huán)境、運行模式、配置文件perties;掌握KafkaShell命令的使用;熟練掌握在Linux環(huán)境下部署Kafka集群,使用KafkaShell命令。7.1初識Kafka7.2Kafka體系架構7.3Kafka部署要點7.3.1Kafka運行環(huán)境7.3.2Kafka運行模式7.3.3Kafka配置文件7.4KafkaShell常用命令7.5綜合實戰(zhàn):Kafka實戰(zhàn)重點難點:重點為理解Kafka的體系架構,理解Kafka部署要點包括運行環(huán)境、運行模式、配置文件perties;熟練掌握在Linux環(huán)境下部署Kafka集群,使用KafkaShell命令;難點為無。學習要求:課前查閱資料,預習Kafka;課后參照實驗指導書,自行實踐Kafka的部署和簡單使用。思考題(案例):在Kafka在0.8以前的版本中,一旦某一個Broker宕機,則其上所有的Partition數(shù)據(jù)都不可被消費,這與Kafka數(shù)據(jù)持久性及DeliveryGuarantee的設計目標相悖。隨著集群規(guī)模的增加,整個集群中出現(xiàn)該類異常的幾率大大增加,因此在實際生產(chǎn)系統(tǒng)中,如何解決這種問題?作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐Kafka的部署和簡單使用。(3)課后查閱資料,預習計算框架Spark。課程思政:通過學習Kafka體系架構及Broker、Producer和Customer三種角色功能,培養(yǎng)學生“以人為本”的設計思維;通過實戰(zhàn)Kafka的實訓,訓練學生使用現(xiàn)代工具解決Hadoop各組件間不同數(shù)據(jù)實時交換問題的能力,培養(yǎng)學生勤于實踐的學習精神、精益求精的工作態(tài)度、創(chuàng)新進取的卓越追求。第八章Spark集群部署和基本編程內(nèi)容與目標:了解Spark功能、來源和優(yōu)勢;理解Spark生態(tài)系統(tǒng)組成及各組件功能;理解Spark運行架構;理解RDD的設計思想,掌握RDD的創(chuàng)建和操作;理解Spark部署要點包括運行環(huán)境、運行模式、配置文件spark-env.sh;了解Spark接口,掌握SparkShell命令中交互式編程pyspark、運行獨立應用程序spark-submit使用方法,初步掌握SparkRDD編程、SparkStreaming編程;熟練掌握在Linux環(huán)境下部署Spark集群,使用Python、Java或Scala進行RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理、實時處理。8.1初識Spark8.1.1Spark簡介8.1.2Spark對比HadoopMapReduce8.2Spark生態(tài)系統(tǒng)8.3Spark運行架構8.4RDD的設計與操作8.4.1RDD簡介8.4.2RDD數(shù)據(jù)存儲模型8.4.3RDD創(chuàng)建8.4.4RDD操作8.5Spark部署要點8.5.1Spark運行環(huán)境8.5.2Spark運行模式8.5.3Spark配置文件8.6Spark接口8.6.1SparkWebUI8.6.2SparkShell8.6.3SparkAPI8.6.4其它接口8.7綜合實戰(zhàn):Spark集群部署和基本編程重點難點:重點為理解Spark生態(tài)系統(tǒng)、運行架構,理解RDD的設計思想,掌握RDD的創(chuàng)建和操作,熟練掌握在Linux環(huán)境下部署Spark集群,使用Python、Java或Scala進行RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理和實時處理;難點為通過RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理和實時處理。學習要求:課前查閱資料,預習計算框架Spark;課后參照實驗指導書,自Spark集群的部署和基本編程。思考題(案例):針對23412條1965-2016全球重大地震數(shù)據(jù),采用Python為編程語言,采用HDFS存儲數(shù)據(jù),通過SparkSQL編程完成對數(shù)據(jù)的處理分析。作業(yè):(1)完成章節(jié)測試。(2)課后參照實驗指導書,自行實踐Spark集群的部署和基本編程。(3)課后查閱資料,預習計算框架Flink。課程思政:由MapReduce到Spark計算框架的革新,引入我國科技創(chuàng)新情況,向?qū)W生介紹蛟龍?zhí)?、北斗三號、墨子號等科技?chuàng)新成果,鼓勵學生樹立遠大志向、腳踏實地、艱苦奮斗,承擔起民族復興的歷史重任,培養(yǎng)學生愛國主義精神。第九章Flink集群部署和基本編程(選修)內(nèi)容與目標:了解Flink功能、來源和優(yōu)勢;理解Flink技術棧組成及各組件功能;理解Flink運行架構;理解Flink編程模型,掌握常用的DataStreamAPI和DataSetAPI;理解Flink應用程序結構,批處理、流計算應用程序的編寫步驟;理解Flink部署要點包括運行環(huán)境、運行模式、配置文件flink-conf.yaml、masters、workers等;掌握FlinkWebUI、FlinkShell常用命令如“flinkrun”等的使用方法,了解FlinkAPI;熟練掌握在Linux環(huán)境下部署FlinkStandalone集群,使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程,實現(xiàn)海量數(shù)據(jù)的批處理、流計算。9.1初識Flink9.2Flink技術棧9.3Flink運行架構9.4Flink編程模型9.4.1DataStreamAPI9.4.2DataSetAPI9.5Flink應用程序編寫步驟9.5.1Flink批處理應用程序編寫步驟9.5.2Flink流處理應用程序編寫步驟9.6部署Flink要點9.6.1Flink運行環(huán)境9.6.2Flink運行模式9.6.3Flink配置文件9.7Flink接口9.7.1FlinkWebUI9.7.2FlinkShell9.7.3FlinkAPI9.8綜合實戰(zhàn):FlinkStandalone集群部署和基本編程重點難點:重點為理解Flink技術棧組成、運行架構、應用程序結構,理解Flink部署要點包括運行環(huán)境、運行模式、配置文件flink-conf.yaml、masters、workers等,熟練掌握在Linux環(huán)境下部署FlinkStandalone集群,使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程,實現(xiàn)海量數(shù)據(jù)的批處理和流計算;難點為使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程,實現(xiàn)海量數(shù)據(jù)的批處理和流計算。學習要求:課前查閱資料,預習計算框架Flink;課后自行實踐Flink集群的部署和基本編程。思考題(案例):針對爬取的豆瓣電影記錄,使用Scala語言進行Flink編程完成數(shù)據(jù)處理。作業(yè):完成章節(jié)測試。課程思政:通過對比Flink與MapReduce、Spark、Storm,引導學生鉆研難題、大膽實踐,努力提升個人服務社會、報效祖國的專業(yè)技能;通過Flink基本編程,訓練學生海量數(shù)據(jù)的實時處理能力,養(yǎng)成專注嚴謹、追求卓越的工作作風。2.其它教學環(huán)節(jié)(如實習、實驗、上機等)實驗一部署全分布模式Hadoop集群任務:在Linux下部署全分布模式Hadoop集群。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃部署。(2)準備機器。(3)準備軟件環(huán)境:配置靜態(tài)IP;修改主機名;編輯域名映射;安裝和配置Java;安裝和配置SSH免密登錄。(4)下載和安裝Hadoop。(5)配置全分布模式Hadoop集群。(6)關閉防火墻。(7)格式化文件系統(tǒng)。(8)啟動和驗證Hadoop。(9)關閉Hadoop。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論。基本要求:(1)熟練掌握Linux基本命令。(2)掌握靜態(tài)IP地址的配置、主機名和域名映射的修改。(3)掌握Linux環(huán)境下Java的安裝、環(huán)境變量的配置、Java基本命令的使用。(4)理解為何需要配置SSH免密登錄,掌握Linux環(huán)境下SSH的安裝、免密登錄的配置。(5)熟練掌握在Linux環(huán)境下部署全分布模式Hadoop集群。重點難點:重點為熟練掌握在Linux環(huán)境下如何部署全分布模式Hadoop集群;難點為理解為掌握Linux環(huán)境下SSH的安裝、免密登錄的配置,熟練掌握在Linux環(huán)境下部署全分布模式Hadoop集群。說明:注意用電安全。實驗二HDFS實戰(zhàn)任務:使用HDFSWebUI和HDFSShell常用命令,編寫HDFSJavaAPI常規(guī)操作程序如創(chuàng)建目錄、創(chuàng)建文件、重命名、上傳本地文件到HDFS、查看文件位置等。場所:計算機實驗室。內(nèi)容:(1)啟動全分布模式Hadoop集群,守護進程包括NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager和JobHistoryServer。(2)查看HDFSWebUI界面。(3)練習HDFSShell文件系統(tǒng)命令和系統(tǒng)管理命令。(4)在Hadoop集群主節(jié)點上搭建HDFS開發(fā)環(huán)境Eclipse。(5)創(chuàng)建Java項目HDFSExample,在其下建立新包com.xijing.hdfs,使用HDFSJavaAPI編寫HDFS文件操作程序,實現(xiàn)上傳本地文件到HDFS的功能,采用本地執(zhí)行和集群執(zhí)行的兩種執(zhí)行方式測試,觀察結果。(6)使用HDFSJavaAPI編寫HDFS文件操作程序,實現(xiàn)查看上傳文件在HDFS集群中位置的功能,采用本地執(zhí)行和集群執(zhí)行的兩種執(zhí)行方式測試,觀察結果。(7)關閉全分布模式Hadoop集群。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解HDFS體系架構。(2)理解HDFS文件存儲原理和數(shù)據(jù)讀寫過程。(3)熟練掌握HDFSWebUI界面的使用。(4)熟練掌握HDFSShell常用命令的使用。(5)熟練掌握HDFS項目開發(fā)環(huán)境的搭建。(6)掌握使用HDFSJavaAPI編寫HDFS文件操作程序。重點難點:重點為熟練掌握HDFSWebUI界面和HDFSShell常用命令的使用;難點為掌握使用HDFSJavaAPI編寫HDFS文件操作程序。說明:注意用電安全。實驗三MapReduce編程任務:基于MapReduce計算框架,使用Java語言編寫MapReduce應用程序,用于實現(xiàn)統(tǒng)計對象中的某些屬性。場所:計算機實驗室。內(nèi)容:(1)啟動全分布模式Hadoop集群,守護進程包括NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager和JobHistoryServer。(2)在Eclipse下創(chuàng)建Java項目MapReduceExample,在其下建立新包com.xijing.mapreduce,編寫MapReduce程序,已知某個超市的結算記錄,從左往右各字段的含義依次是會員編號、結算時間、消費金額和用戶身份,要求計算出會員和非會員的平均消費金額。最后打包成JAR形式并在Hadoop集群上運行該MR-App,查看運行結果。(3)分別在自編MapReduce程序運行過程中和運行結束后練習MapReduceShell常用命令。(4)分別在自編MapReduce程序運行過程中和運行結束后查看MapReduceWebUI界面。(5)關閉Hadoop集群。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解MapReduce編程思想。(2)理解MapReduce作業(yè)執(zhí)行流程。(3)理解MR-App編寫步驟,掌握使用MapReduceJavaAPI進行MapReduce基本編程,熟練掌握如何在Hadoop集群上運行MR-App并查看運行結果。(4)熟練掌握MapReduceWebUI界面的使用。(5)掌握MapReduceShell常用命令的使用。重點難點:重點為掌握MapReduce編程;難點為掌握MapReduce編程。說明:注意用電安全。實驗四部署ZooKeeper集群和ZooKeeper實戰(zhàn)任務:部署ZooKeeper集群,練習ZooKeeperShell常用命令。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃ZooKeeper集群。(2)部署ZooKeeper集群。(3)啟動ZooKeeper集群。(4)驗證ZooKeeper集群。(5)使用ZooKeeperShell客戶端命令。(6)關閉ZooKeeper集群。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解ZooKeeper的系統(tǒng)模型,包括數(shù)據(jù)模型、版本機制、Watcher監(jiān)聽機制、ACL權限控制機制。(2)理解ZooKeeper的工作原理,包括集群架構、Leader選舉機制。(3)熟練掌握ZooKeeper集群的部署和運行。(4)掌握ZooKeeper四字命令的使用。(5)熟練掌握ZooKeeperShell常用命令的使用。(6)了解ZooKeeperJavaAPI,能看懂簡單的ZooKeeper編程。重點難點:重點為熟練掌握ZooKeeper集群的部署、ZooKeeperShell常用命令的使用;難點為了解ZooKeeperJavaAPI,能看懂簡單的ZooKeeper編程。說明:注意用電安全。實驗五部署本地模式Hive和Hive實戰(zhàn)任務:部署本地模式Hive,使用HiveQL語句完成海量結構化數(shù)據(jù)的離線分析。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃Hive。(2)在Linux下安裝和配置MySQL,部署本地模式Hive。(3)驗證Hive。(4)使用HiveQL語句完成海量結構化數(shù)據(jù)的離線分析。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解Hive工作原理。(2)理解Hive體系架構。(3)熟悉Hive運行模式,熟練掌握本地模式Hive的部署。(4)了解HiveWebUI的配置和使用。(5)熟練掌握HiveQL語句的使用。(6)了解HiveJavaAPI,能編寫簡單的Hive程序。重點難點:重點為熟練掌握本地模式Hive的部署,熟練掌握HiveQL語句的使用;難點為熟練掌握HiveQL語句的使用。說明:注意用電安全。實驗六Flume實戰(zhàn)任務:安裝和配置Flume,編寫Agent屬性文件,并使用FlumeShell命令進行實時日志收集。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃Flume。(2)安裝和配置Flume。(3)驗證Flume。(4)編寫Agent屬性文件,并使用FlumeShell命令進行實時日志收集。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解Flume體系架構及Source、Sink、Channel功能。(2)理解Flume部署要點包括運行環(huán)境、運行模式、配置文件flume-env.sh。(3)熟練掌握在Linux環(huán)境下部署Flume,靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集。重點難點:重點為理解Flume部署要點包括運行環(huán)境、運行模式、配置文件flume-env.sh,熟練掌握在Linux環(huán)境下部署Flume,靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集;難點為靈活編寫Agent屬性文件和使用FlumeShell命令進行實時日志收集。說明:注意用電安全。實驗七Kafka實戰(zhàn)任務:安裝和配置Kafka,使用KafkaShell命令完成分布式消息的發(fā)布和訂閱。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃Kafka集群。(2)部署Kafka集群。(3)啟動Kafka集群。(4)驗證Kafka集群。(5)使用KafkaShell命令完成分布式消息的發(fā)布和訂閱。(6)關閉Kafka集群。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解Kafka體系架構及Broker、Producer和Customer三種角色功能。(2)理解Kafka部署要點包括運行環(huán)境、運行模式、配置文件perties。(3)熟練掌握在Linux環(huán)境下部署Kafka集群,使用KafkaShell命令完成分布式消息的發(fā)布和訂閱。重點難點:重點為理解Kafka部署要點包括運行環(huán)境、運行模式、配置文件perties,熟練掌握在Linux環(huán)境下部署Kafka集群,使用KafkaShell命令完成分布式消息的發(fā)布和訂閱;難點為使用KafkaShell命令完成分布式消息的發(fā)布和訂閱。說明:注意用電安全。實驗八Spark集群部署和基本編程任務:部署Spark集群,使用Python語言進行RDD交互式編程,使用Python語言編寫SparkStreaming獨立應用程序。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃Spark集群。(2)部署Spark集群。(3)啟動Spark集群。(4)驗證Spark集群。(5)使用SparkShell命令“pyspark”進行交互式編程,使用Python語言編寫代碼,實現(xiàn)對HDFS文件的英文詞頻統(tǒng)計,并按詞頻降序排序,最后輸出結果,要求通過終端和SparkWebUI觀察該應用程序的運行過程。(6)使用Python語言編寫SparkStreaming獨立應用程序,將Flume作為SparkStreaming輸入源,實現(xiàn)對Flume消息的實時詞頻統(tǒng)計。要求從終端上不斷給FlumeSource(netcat類型)發(fā)送各種消息,F(xiàn)lume把消息匯集到Sink(avro類型),由Sink把消息推送給SparkStreaming。(7)關閉Spark集群。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解Spark運行架構。(2)理解RDD的設計思想,掌握RDD的創(chuàng)建和操作。(3)理解Spark部署要點包括運行環(huán)境、運行模式、配置文件spark-env.sh。(4)熟練掌握在Linux環(huán)境下部署Spark集群,掌握交互式編程pyspark、運行獨立應用程序spark-submit的使用方法,使用Python、Java或Scala進行RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理和實時處理。重點難點:重點為理解Spark部署要點包括運行環(huán)境、運行模式、配置文件spark-env.sh,熟練掌握在Linux環(huán)境下部署Spark集群,掌握交互式編程pyspark、運行獨立應用程序spark-submit的使用方法,使用Python、Java或Scala進行RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理和實時處理;難點為掌握使用Python、Java或Scala進行RDD編程、SparkStreaming編程,實現(xiàn)海量數(shù)據(jù)的離線處理和實時處理。說明:注意用電安全。實驗九FlinkStandalone集群部署和基本編程(選修)任務:部署FlinkStandalone集群,使用Scala語言編寫Flink批處理程序和Flink流處理程序。場所:計算機實驗室。內(nèi)容:(1)規(guī)劃FlinkStandalone集群。(2)部署FlinkStandalone集群。(3)啟動FlinkStandalone集群。(4)驗證FlinkStandalone集群。(5)使用DataSetAPI采用Scala語言編寫Flink批處理程序,實現(xiàn)對內(nèi)容為英文字符的HDFS文件的數(shù)據(jù)讀取,統(tǒng)計單詞詞頻,并將處理結果輸出到HDFS文件中。(6)使用DataStreamAPI采用Scala語言編寫Flink流處理程序,采用Socket數(shù)據(jù)源,由Socket服務器端不斷向客戶端Flink流處理程序發(fā)送數(shù)據(jù)流(內(nèi)容為英文字符),使統(tǒng)計單詞詞頻,要求使用滾動窗口實現(xiàn)且窗口大小為5s(即每隔5秒對數(shù)據(jù)流進行一次切分),并將處理結果輸出到終端上。(7)關閉FlinkStandalone集群。教學方法:演示法,實驗教學法,任務驅(qū)動法,小組討論?;疽螅海?)理解Flink運行架構。(2)理解Flink編程模型,掌握常用的DataStreamAPI和DataSetAPI。(3)理解Flink部署要點包括運行環(huán)境、運行模式,以及配置文件flink-conf.yaml、masters和workers等。(4)熟練掌握在Linux環(huán)境下部署FlinkStandalone集群,掌握FlinkWebUI、FlinkShell常用命令如“flinkrun”等的使用方法,掌握使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程,實現(xiàn)海量數(shù)據(jù)的批處理和流計算。重點難點:重點為理解Flink編程模型,掌握常用的DataStreamAPI和DataSetAPI,理解Flink部署要點包括運行環(huán)境、運行模式,以及配置文件flink-conf.yaml、masters和workers等,熟練掌握在Linux環(huán)境下部署FlinkStandalone集群,掌握使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程,實現(xiàn)海量數(shù)據(jù)的批處理和流計算;難點為掌握使用Python、Java或Scala語言進行DataSetAPI編程、DataStreamAPI編程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論