《大数据技术实战案例教程》-教学大纲_第1页
《大数据技术实战案例教程》-教学大纲_第2页
《大数据技术实战案例教程》-教学大纲_第3页
《大数据技术实战案例教程》-教学大纲_第4页
《大数据技术实战案例教程》-教学大纲_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《大数据技术实战案例教程ISBN978-7-5606-6679-2》教学大纲编写者:徐鲁辉******《大数据技术原理及应用》课程教学大纲课程基本信息(一)课程中文名称:大数据技术原理及应用代码:********(二)课程英文名称:PrinciplesandApplicationsofBigDataTechnology(三)课程性质:专业核心课程(四)课程学分:3学分(理论2学分实验1学分)(五)适用专业:******(六)开课单位:******课程教学目标(一)课程定位《大数据技术原理及应用》是计算机科学与技术、数据科学与大数据技术等专业的一门专业核心课程。该课程着重讲述大数据技术的知识体系,阐明其基本原理,引导学生进行初级实践和了解相关应用,培养学生运用大数据平台搭建、数据采集与迁移、大数据存储与管理、大数据处理与分析等方法和技术工具完成大数据应用的能力,在整个大数据课程体系中起着承前启后重要作用。该课程由理论教学和实验教学两个部分组成,其先修课程包括Java语言程序设计、Python语言程序设计、Scala语言程序设计、Linux操作系统、数据库原理等,后续课程包括机器学习、Spark大数据开发技术、Flink大数据开发技术、数据可视化技术等。(二)课程目标《大数据技术原理及应用》围绕“构建知识体系、阐明基本原理、引导初级实践、了解相关应用”的指导思想,着重讲述大数据技术的基本原理、基本方法、技术工具和相关应用,帮助学生构建完整的大数据技术知识体系,使学生了解大数据技术在行业领域中的最新发展趋势和前沿知识,熟悉大数据应用的整个生命周期,能够熟练使用Hadoop、Spark、Flink等主流大数据平台及其生态系统中的技术工具完成基本的大数据应用闭环操作,达到知行合一、以用促学的目的。知识目标:1.理解大数据处理平台Hadoop的生态系统和体系架构,熟练掌握在Linux环境下部署全分布模式Hadoop集群;2.理解分布式文件系统HDFS的体系架构、文件存储机制和数据读写过程,熟练掌握通过HDFSWebUI、HDFSShell、HDFSJavaAPI三大接口实现HDFS文件的操作和管理;3.理解分布式计算框架MapReduce的编程思想和作业执行流程,了解MapReduceWebUI和MapReduceShell接口,熟练掌握通过Java语言编写MapReduce程序,完成海量数据的离线分析;4.理解分布式协调框架ZooKeeper的工作原理和数据模型,熟练掌握在Linux环境下部署ZooKeeper集群、使用ZooKeeperShell服务端命令和客户端命令;5.理解Hive的体系架构和数据模型,熟练掌握在Linux环境下部署本地模式Hive,综合运用HiveQL语句进行海量结构化数据的离线分析;6.理解Flume的体系架构,熟练掌握在Linux环境下部署Flume,灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集;7.理解Kafka的体系架构,熟练掌握在Linux环境下部署Kafka集群,使用KafkaShell命令完成分布式消息的发布和订阅;8.理解Spark的生态系统、运行架构,理解RDD设计思想,掌握RDD创建和操作,熟练掌握在Linux环境下部署Spark集群,使用Python、Java或Scala进行RDD编程、SparkStreaming编程,实现海量数据的离线处理和实时处理;9.理解Flink的技术栈、运行架构、编程模型和应用程序结构,熟练掌握在Linux环境下部署FlinkStandalone集群,使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程,实现海量数据的批处理和流计算。能力目标:培养学生学以致用,能够综合利用Hadoop、Spark、Flink等大数据平台及其生态中各个工具解决实际大数据应用方面的基本问题,提高学生阅读外文科技文献能力,增强学生发现问题、分析问题、解决问题能力,与学科竞赛和项目紧密结合,稳步培养和提高学生的动手实践能力、自主创新能力、团队协作能力、写作表达能力。情感目标:通过对我国大数据技术、传统优秀文化的介绍,增强学生的民族自豪感,提升学生的爱国主义精神,增强文化自信;将专业知识与服务社会相结合,培养学生的社会责任感,树立正确三观,使学生更为深刻的理解专业内涵,提高学习内驱力,培养科学素养,内化为道德准则、科学思维和行为规范。课程教学内容1.理论教学第一章部署全分布模式Hadoop集群内容与目标:了解Hadoop功能、起源和版本;理解Hadoop生态系统组成及各组件作用;理解Hadoop体系架构;掌握Hadoop部署要点包括运行环境、运行模式和主要配置文件等;熟练掌握在Linux环境下部署全分布模式Hadoop集群。1.1初识Hadoop1.2Hadoop生态系统1.3Hadoop体系架构1.4Hadoop部署要点1.4.1Hadoop运行环境1.4.2Hadoop运行模式1.4.3Hadoop配置文件1.5综合实战:部署全分布模式Hadoop集群重点难点:重点为理解Hadoop的生态系统、体系架构,掌握部署要点,熟练掌握在Linux环境下部署全分布模式Hadoop集群;难点为熟练掌握在Linux环境下部署全分布模式Hadoop集群。学习要求:课前查阅资料,预习大数据处理平台Hadoop;课后参照实验指导书,自行实践部署Hadoop。思考题(案例):部署Hadoop单机模式、伪分布模式、全分布模式的异同点。作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践部署Hadoop。(3)课后查阅资料,试读Google论文《TheGoogleFileSystem》,预习分布式文件系统HDFS。课程思政:(1)介绍Hadoop发展史,学习前辈们刻苦钻研、攻坚克难的科学素养。(2)将唯物辩证法中整体与局部思想融入Hadoop设计原理讲述中,Hadoop版本选择可以和“具体问题具体分析”思想融合。(3)部署Hadoop实验部分则可以培养学生的自学能力和实践能力,将提高学生科学素养渗透到实验中。第二章HDFS实战内容与目标:了解HDFS功能、来源和特点;理解HDFS体系架构及NameNode和DataNode作用;理解HDFS文件存储原理,包括数据块、副本策略、数据读取过程、数据写入过程;熟练掌握通过HDFSWebUI、HDFSShell、HDFSJavaAPI三大接口实现HDFS文件的操作和管理。2.1初识HDFS2.2HDFS体系架构2.3HDFS文件存储原理2.3.1数据块Block2.3.2副本存放策略2.3.3数据读取2.3.4数据写入2.4HDFS接口2.4.1HDFSWebUI2.4.2HDFSShell2.4.3HDFSJavaAPI2.5HDFS高可靠性机制2.5.1HDFSNameNodeHA高可用机制2.5.2HDFSNameNodeFederation联邦机制2.6综合实战:HDFS实战重点难点:重点为理解HDFS的体系架构、文件存储原理,熟练掌握通过HDFSWebUI、HDFSShell、HDFSJavaAPI三大接口实现HDFS文件的操作和管理;难点为理解HDFS的文件存储原理,熟练掌握通过HDFSJavaAPI编程实现HDFS文件的操作和管理。学习要求:课前查阅资料,预习Hadoop分布式文件系统HDFS;课后参照实验指导书,自行实践HDFSWebUI的基本使用,HDFSShell常用命令的使用,HDFSJavaAPI编程。思考题(案例):分布式文件系统的设计需求和设计目标。作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践HDFSWebUI、HDFSShell、HDFSJavaAPI。(3)课后查阅资料,试读Google论文《MapReduce:SimplifiedDataProcessingonLargeClusters》,预习分布式计算框架MapReduce。课程思政:(1)由HDFS的优缺点引入唯物辩证法中“矛盾是对立统一的”,因引入中国优秀传统文化《吕氏春秋·用众》:“物固莫不有长;莫不有短;人亦然。故善学者假人之长补其短。”培养学生要树立终身学习的意识,取长补短,不断完善自我、超越自我。(2)由HDFS单点故障问题引入“主次矛盾思维——瓶颈法”,培养学生的科学素养。第三章MapReduce编程内容与目标:了解MapReduce功能、来源、设计思想;理解MapReduce作业执行流程;掌握MapReduce数据类型,了解可序列化和反序列化;熟练掌握MapReduce示例程序词频统计WordCount的执行流程及代码编写;了解MapReduceWebUI和MapReduceShell接口,掌握MapReduceJavaAPI编程接口;熟练掌握通过Java语言编写MapReduce程序,完成海量数据的离线分析。3.1初识MapReduce3.2MapReduce作业执行流程3.3MapReduce入门案例WordCount剖析3.3.1TokenizerMapper类3.3.2IntSumReducer类3.3.3main()函数3.3.4向Hadoop集群提交并运行WordCount3.4MapReduce数据类型3.5MapReduce接口3.5.1MapReduceWebUI3.5.2MapReduceShell3.5.3MapReduceJavaAPI3.6综合实战:MapReduce编程重点难点:重点为理解MapReduce作业执行流程,熟练掌握MapReduce示例程序词频统计WordCount的执行流程及代码编写;难点为理解MapReduce作业执行流程,熟练掌握通过Java语言编写MapReduce程序,完成海量数据的离线分析。学习要求:课前查阅资料,预习Hadoop分布式计算框架MapReduce;课后参照实验指导书,自行实践MapReduceWebUI、MapReduceShell的基本使用,MapReduce基本编程。思考题(案例):MapReduce可用于对数据进行排序,一种想法是利用MapReduce的自动排序功能,即默认情况下,Reduce的输出结果是有序的,则可以只使用一个Reducer来对数据进行处理、输出,则结果就是有序的了。但这样的排序过程无法充分利用MapReduce的分布式优点。试设计一个基于MapReduce的排序算法,假设数据均位于[1,100],Reducer数量为4,升序输出或降序输出均可。作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践MapReduceWebUI、MapReduceShell,并尝试简单的MapReduce编程。(3)课后查阅资料,预习分布式协调框架ZooKeeper。课程思政:由MapReduce设计思想“分而治之”,引入秦始皇实施的郡县制,并引入《孙子兵法》的《兵势》篇“治众如治寡,分数是也”,让学生感受中国璀璨历史,增强民族自信心和自豪感,培养学生践行社会主义核心价值观中的“爱国”。第四章部署ZooKeeper集群和ZooKeeper实战内容与目标:了解ZooKeeper功能、起源和应用场景;理解ZooKeeper体系架构和工作原理;理解ZooKeeper数据模型;掌握ZooKeeper部署要点包括运行环境、运行模式和配置文件zoo.cfg、myid等;掌握ZooKeeperShell命令,了解ZooKeeper四字命令和ZooKeeperJavaAPI;熟练掌握在Linux环境下部署ZooKeeper集群、使用ZooKeeperShell服务端命令、客户端命令。4.1初识ZooKeeper4.2ZooKeeper工作原理4.3ZooKeeper数据模型4.4ZooKeeper部署要点4.4.1ZooKeeper运行环境4.4.2ZooKeeper运行模式4.4.3ZooKeeper配置文件4.5ZooKeeper接口4.5.1ZooKeeper四字命令4.5.2ZooKeeperShell4.5.3ZooKeeperJavaAPI4.6综合实战:部署ZooKeeper集群和ZooKeeper实战重点难点:重点为理解ZooKeeper的工作原理、数据模型,熟练掌握在Linux环境下部署ZooKeeper集群、使用ZooKeeperShell服务端命令、客户端命令;难点为理解ZooKeeper的工作原理。学习要求:课前查阅资料,预习分布式协调框架ZooKeeper;课后参照实验指导书,自行实践ZooKeeper集群的部署,ZooKeeperShell常用命令的使用。思考题(案例):假设有两个线程,两个线程要同时到MySQL中更新一条数据,对数据库中的数据进行累加更新。由于在分布式环境下,这两个线程可能存在于不同机器上的不同JVM进程中,所以这两个线程的关系就是跨主机和跨进程的,使用Java中的synchronized锁是无法实现的。思考如何使用ZooKeeper实现分布式锁?作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践ZooKeeper集群的部署,ZooKeeperShell常见命令的使用。(3)课后查阅资料,试读Google论文《Bigtable:ADistributedStorageSystemforStructuredData》,预习分布式数据库HBase。课程思政:ApacheZooKeeper是GoogleChubby的开源实现,和Chubby相比,Zookeeper做了很多突破,由此引入鲁迅先生的《拿来主义》,“运用脑髓,放出眼光,自己来拿”,培养学生批判地继承文化遗产,取其精华去其糟粕,继而延伸到专业编程能力培养上,先模仿后修改再创新。第五章部署本地模式Hive和Hive实战内容与目标:了解Hive功能、来源和优缺点;理解Hive体系架构及各个组件功能;掌握Hive数据类型,包括基本数据类型和集合数据类型;理解Hive数据模型,包括表、分区和分桶;掌握Hive函数,主要为内置函数;理解Hive部署要点包括运行环境、运行模式和配置文件hive-site.xml、hive-env.sh等;掌握HiveQL中的DDL、DML、select语句,了解接口HWI和HiveAPI;熟练掌握在Linux环境下部署本地模式Hive,综合运用HiveQL语句进行海量结构化数据的离线分析。5.1初识Hive5.2Hive体系架构5.3Hive数据类型5.4Hive数据模型5.5Hive函数5.6Hive部署要点5.6.1Hive运行环境5.6.2Hive部署模式5.6.3Hive配置文件5.7Hive接口5.7.1HiveShell5.7.2HiveWebInterface(HWI)5.7.3HiveAPI5.8综合实战:部署本地模式Hive和Hive实战重点难点:重点为理解Hive的体系架构、数据模型,掌握Hive函数,掌握HiveQL中的DDL、DML、select语句;难点为掌握Hive函数,综合运用HiveQL语句进行海量结构化数据的离线分析。学习要求:课前查阅资料,预习数据仓库Hive;课后参照实验指导书,自行实践Hive的部署、HiveQL语句的使用。思考题(案例):使用Hive完成用户访问量TOP5统计。数据字段格式为:url、session_id、referer、ip、end_user_id、city_id,分隔符为制表符。作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践Hive集群的部署、HiveQL语句、Hive内置函数的使用、HiveShell命令的使用。(3)课后查阅资料,预习日志采集工具Flume。课程思政:(1)由Hive数据仓库引入商业智能(BusinessIntelligence,简称:BI),指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。现代信息技术日新月异,引导学生实时关注大数据最新技术和发展趋势,培养学生建立起终身学习的目标、勇攀高峰的科学精神。(2)HiveQL实践时,缺少一个逗号、一个引号等微小问题就会导致结果不正确,引导学生遵守工程技术规范,养成认真严谨的治学态度。第六章Flume实战内容与目标:了解Flume功能、来源、特点和版本;理解Flume体系架构及Source、Sink、Channel功能;理解Flume部署要点包括运行环境、运行模式、配置文件flume-env.sh;掌握FlumeShell命令的使用;熟练掌握在Linux环境下部署Flume,灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集。6.1初识Flume6.2Flume体系架构6.3Flume部署要点6.3.1Flume运行环境6.3.2Flume运行模式6.3.3Flume配置文件6.4FlumeShell常用命令6.5综合实战:Flume实战重点难点:重点为理解Flume的体系架构,理解Flume部署要点包括运行环境、运行模式、配置文件,熟练掌握在Linux环境下部署Flume,灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集;难点为灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集。学习要求:课前查阅资料,预习Flume;课后参照实验指导书,自行实践Flume的部署和简单使用。思考题(案例):Flume的部署类型包括单一流程、多代理流程、流的合并、多路复用流,参考官网尝试实践各种类型的配置。作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践Flume的部署和简单使用。(3)课后查阅资料,预习分布式消息系统Kafka。课程思政:由课堂教学中Flume来源的讲述,养成批判性思维,培养学生文献检索能力、独立解决问题能力。第七章Kafka实战内容与目标:了解Kafka功能、来源和特点;理解Kafka体系架构及Broker、Producer和Customer三种角色功能;理解Kafka部署要点包括运行环境、运行模式、配置文件perties;掌握KafkaShell命令的使用;熟练掌握在Linux环境下部署Kafka集群,使用KafkaShell命令。7.1初识Kafka7.2Kafka体系架构7.3Kafka部署要点7.3.1Kafka运行环境7.3.2Kafka运行模式7.3.3Kafka配置文件7.4KafkaShell常用命令7.5综合实战:Kafka实战重点难点:重点为理解Kafka的体系架构,理解Kafka部署要点包括运行环境、运行模式、配置文件perties;熟练掌握在Linux环境下部署Kafka集群,使用KafkaShell命令;难点为无。学习要求:课前查阅资料,预习Kafka;课后参照实验指导书,自行实践Kafka的部署和简单使用。思考题(案例):在Kafka在0.8以前的版本中,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费,这与Kafka数据持久性及DeliveryGuarantee的设计目标相悖。随着集群规模的增加,整个集群中出现该类异常的几率大大增加,因此在实际生产系统中,如何解决这种问题?作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践Kafka的部署和简单使用。(3)课后查阅资料,预习计算框架Spark。课程思政:通过学习Kafka体系架构及Broker、Producer和Customer三种角色功能,培养学生“以人为本”的设计思维;通过实战Kafka的实训,训练学生使用现代工具解决Hadoop各组件间不同数据实时交换问题的能力,培养学生勤于实践的学习精神、精益求精的工作态度、创新进取的卓越追求。第八章Spark集群部署和基本编程内容与目标:了解Spark功能、来源和优势;理解Spark生态系统组成及各组件功能;理解Spark运行架构;理解RDD的设计思想,掌握RDD的创建和操作;理解Spark部署要点包括运行环境、运行模式、配置文件spark-env.sh;了解Spark接口,掌握SparkShell命令中交互式编程pyspark、运行独立应用程序spark-submit使用方法,初步掌握SparkRDD编程、SparkStreaming编程;熟练掌握在Linux环境下部署Spark集群,使用Python、Java或Scala进行RDD编程、SparkStreaming编程,实现海量数据的离线处理、实时处理。8.1初识Spark8.1.1Spark简介8.1.2Spark对比HadoopMapReduce8.2Spark生态系统8.3Spark运行架构8.4RDD的设计与操作8.4.1RDD简介8.4.2RDD数据存储模型8.4.3RDD创建8.4.4RDD操作8.5Spark部署要点8.5.1Spark运行环境8.5.2Spark运行模式8.5.3Spark配置文件8.6Spark接口8.6.1SparkWebUI8.6.2SparkShell8.6.3SparkAPI8.6.4其它接口8.7综合实战:Spark集群部署和基本编程重点难点:重点为理解Spark生态系统、运行架构,理解RDD的设计思想,掌握RDD的创建和操作,熟练掌握在Linux环境下部署Spark集群,使用Python、Java或Scala进行RDD编程、SparkStreaming编程,实现海量数据的离线处理和实时处理;难点为通过RDD编程、SparkStreaming编程,实现海量数据的离线处理和实时处理。学习要求:课前查阅资料,预习计算框架Spark;课后参照实验指导书,自Spark集群的部署和基本编程。思考题(案例):针对23412条1965-2016全球重大地震数据,采用Python为编程语言,采用HDFS存储数据,通过SparkSQL编程完成对数据的处理分析。作业:(1)完成章节测试。(2)课后参照实验指导书,自行实践Spark集群的部署和基本编程。(3)课后查阅资料,预习计算框架Flink。课程思政:由MapReduce到Spark计算框架的革新,引入我国科技创新情况,向学生介绍蛟龙号、北斗三号、墨子号等科技创新成果,鼓励学生树立远大志向、脚踏实地、艰苦奋斗,承担起民族复兴的历史重任,培养学生爱国主义精神。第九章Flink集群部署和基本编程(选修)内容与目标:了解Flink功能、来源和优势;理解Flink技术栈组成及各组件功能;理解Flink运行架构;理解Flink编程模型,掌握常用的DataStreamAPI和DataSetAPI;理解Flink应用程序结构,批处理、流计算应用程序的编写步骤;理解Flink部署要点包括运行环境、运行模式、配置文件flink-conf.yaml、masters、workers等;掌握FlinkWebUI、FlinkShell常用命令如“flinkrun”等的使用方法,了解FlinkAPI;熟练掌握在Linux环境下部署FlinkStandalone集群,使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程,实现海量数据的批处理、流计算。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运行环境9.6.2Flink运行模式9.6.3Flink配置文件9.7Flink接口9.7.1FlinkWebUI9.7.2FlinkShell9.7.3FlinkAPI9.8综合实战:FlinkStandalone集群部署和基本编程重点难点:重点为理解Flink技术栈组成、运行架构、应用程序结构,理解Flink部署要点包括运行环境、运行模式、配置文件flink-conf.yaml、masters、workers等,熟练掌握在Linux环境下部署FlinkStandalone集群,使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程,实现海量数据的批处理和流计算;难点为使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程,实现海量数据的批处理和流计算。学习要求:课前查阅资料,预习计算框架Flink;课后自行实践Flink集群的部署和基本编程。思考题(案例):针对爬取的豆瓣电影记录,使用Scala语言进行Flink编程完成数据处理。作业:完成章节测试。课程思政:通过对比Flink与MapReduce、Spark、Storm,引导学生钻研难题、大胆实践,努力提升个人服务社会、报效祖国的专业技能;通过Flink基本编程,训练学生海量数据的实时处理能力,养成专注严谨、追求卓越的工作作风。2.其它教学环节(如实习、实验、上机等)实验一部署全分布模式Hadoop集群任务:在Linux下部署全分布模式Hadoop集群。场所:计算机实验室。内容:(1)规划部署。(2)准备机器。(3)准备软件环境:配置静态IP;修改主机名;编辑域名映射;安装和配置Java;安装和配置SSH免密登录。(4)下载和安装Hadoop。(5)配置全分布模式Hadoop集群。(6)关闭防火墙。(7)格式化文件系统。(8)启动和验证Hadoop。(9)关闭Hadoop。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)熟练掌握Linux基本命令。(2)掌握静态IP地址的配置、主机名和域名映射的修改。(3)掌握Linux环境下Java的安装、环境变量的配置、Java基本命令的使用。(4)理解为何需要配置SSH免密登录,掌握Linux环境下SSH的安装、免密登录的配置。(5)熟练掌握在Linux环境下部署全分布模式Hadoop集群。重点难点:重点为熟练掌握在Linux环境下如何部署全分布模式Hadoop集群;难点为理解为掌握Linux环境下SSH的安装、免密登录的配置,熟练掌握在Linux环境下部署全分布模式Hadoop集群。说明:注意用电安全。实验二HDFS实战任务:使用HDFSWebUI和HDFSShell常用命令,编写HDFSJavaAPI常规操作程序如创建目录、创建文件、重命名、上传本地文件到HDFS、查看文件位置等。场所:计算机实验室。内容:(1)启动全分布模式Hadoop集群,守护进程包括NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager和JobHistoryServer。(2)查看HDFSWebUI界面。(3)练习HDFSShell文件系统命令和系统管理命令。(4)在Hadoop集群主节点上搭建HDFS开发环境Eclipse。(5)创建Java项目HDFSExample,在其下建立新包com.xijing.hdfs,使用HDFSJavaAPI编写HDFS文件操作程序,实现上传本地文件到HDFS的功能,采用本地执行和集群执行的两种执行方式测试,观察结果。(6)使用HDFSJavaAPI编写HDFS文件操作程序,实现查看上传文件在HDFS集群中位置的功能,采用本地执行和集群执行的两种执行方式测试,观察结果。(7)关闭全分布模式Hadoop集群。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解HDFS体系架构。(2)理解HDFS文件存储原理和数据读写过程。(3)熟练掌握HDFSWebUI界面的使用。(4)熟练掌握HDFSShell常用命令的使用。(5)熟练掌握HDFS项目开发环境的搭建。(6)掌握使用HDFSJavaAPI编写HDFS文件操作程序。重点难点:重点为熟练掌握HDFSWebUI界面和HDFSShell常用命令的使用;难点为掌握使用HDFSJavaAPI编写HDFS文件操作程序。说明:注意用电安全。实验三MapReduce编程任务:基于MapReduce计算框架,使用Java语言编写MapReduce应用程序,用于实现统计对象中的某些属性。场所:计算机实验室。内容:(1)启动全分布模式Hadoop集群,守护进程包括NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager和JobHistoryServer。(2)在Eclipse下创建Java项目MapReduceExample,在其下建立新包com.xijing.mapreduce,编写MapReduce程序,已知某个超市的结算记录,从左往右各字段的含义依次是会员编号、结算时间、消费金额和用户身份,要求计算出会员和非会员的平均消费金额。最后打包成JAR形式并在Hadoop集群上运行该MR-App,查看运行结果。(3)分别在自编MapReduce程序运行过程中和运行结束后练习MapReduceShell常用命令。(4)分别在自编MapReduce程序运行过程中和运行结束后查看MapReduceWebUI界面。(5)关闭Hadoop集群。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解MapReduce编程思想。(2)理解MapReduce作业执行流程。(3)理解MR-App编写步骤,掌握使用MapReduceJavaAPI进行MapReduce基本编程,熟练掌握如何在Hadoop集群上运行MR-App并查看运行结果。(4)熟练掌握MapReduceWebUI界面的使用。(5)掌握MapReduceShell常用命令的使用。重点难点:重点为掌握MapReduce编程;难点为掌握MapReduce编程。说明:注意用电安全。实验四部署ZooKeeper集群和ZooKeeper实战任务:部署ZooKeeper集群,练习ZooKeeperShell常用命令。场所:计算机实验室。内容:(1)规划ZooKeeper集群。(2)部署ZooKeeper集群。(3)启动ZooKeeper集群。(4)验证ZooKeeper集群。(5)使用ZooKeeperShell客户端命令。(6)关闭ZooKeeper集群。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解ZooKeeper的系统模型,包括数据模型、版本机制、Watcher监听机制、ACL权限控制机制。(2)理解ZooKeeper的工作原理,包括集群架构、Leader选举机制。(3)熟练掌握ZooKeeper集群的部署和运行。(4)掌握ZooKeeper四字命令的使用。(5)熟练掌握ZooKeeperShell常用命令的使用。(6)了解ZooKeeperJavaAPI,能看懂简单的ZooKeeper编程。重点难点:重点为熟练掌握ZooKeeper集群的部署、ZooKeeperShell常用命令的使用;难点为了解ZooKeeperJavaAPI,能看懂简单的ZooKeeper编程。说明:注意用电安全。实验五部署本地模式Hive和Hive实战任务:部署本地模式Hive,使用HiveQL语句完成海量结构化数据的离线分析。场所:计算机实验室。内容:(1)规划Hive。(2)在Linux下安装和配置MySQL,部署本地模式Hive。(3)验证Hive。(4)使用HiveQL语句完成海量结构化数据的离线分析。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解Hive工作原理。(2)理解Hive体系架构。(3)熟悉Hive运行模式,熟练掌握本地模式Hive的部署。(4)了解HiveWebUI的配置和使用。(5)熟练掌握HiveQL语句的使用。(6)了解HiveJavaAPI,能编写简单的Hive程序。重点难点:重点为熟练掌握本地模式Hive的部署,熟练掌握HiveQL语句的使用;难点为熟练掌握HiveQL语句的使用。说明:注意用电安全。实验六Flume实战任务:安装和配置Flume,编写Agent属性文件,并使用FlumeShell命令进行实时日志收集。场所:计算机实验室。内容:(1)规划Flume。(2)安装和配置Flume。(3)验证Flume。(4)编写Agent属性文件,并使用FlumeShell命令进行实时日志收集。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解Flume体系架构及Source、Sink、Channel功能。(2)理解Flume部署要点包括运行环境、运行模式、配置文件flume-env.sh。(3)熟练掌握在Linux环境下部署Flume,灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集。重点难点:重点为理解Flume部署要点包括运行环境、运行模式、配置文件flume-env.sh,熟练掌握在Linux环境下部署Flume,灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集;难点为灵活编写Agent属性文件和使用FlumeShell命令进行实时日志收集。说明:注意用电安全。实验七Kafka实战任务:安装和配置Kafka,使用KafkaShell命令完成分布式消息的发布和订阅。场所:计算机实验室。内容:(1)规划Kafka集群。(2)部署Kafka集群。(3)启动Kafka集群。(4)验证Kafka集群。(5)使用KafkaShell命令完成分布式消息的发布和订阅。(6)关闭Kafka集群。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解Kafka体系架构及Broker、Producer和Customer三种角色功能。(2)理解Kafka部署要点包括运行环境、运行模式、配置文件perties。(3)熟练掌握在Linux环境下部署Kafka集群,使用KafkaShell命令完成分布式消息的发布和订阅。重点难点:重点为理解Kafka部署要点包括运行环境、运行模式、配置文件perties,熟练掌握在Linux环境下部署Kafka集群,使用KafkaShell命令完成分布式消息的发布和订阅;难点为使用KafkaShell命令完成分布式消息的发布和订阅。说明:注意用电安全。实验八Spark集群部署和基本编程任务:部署Spark集群,使用Python语言进行RDD交互式编程,使用Python语言编写SparkStreaming独立应用程序。场所:计算机实验室。内容:(1)规划Spark集群。(2)部署Spark集群。(3)启动Spark集群。(4)验证Spark集群。(5)使用SparkShell命令“pyspark”进行交互式编程,使用Python语言编写代码,实现对HDFS文件的英文词频统计,并按词频降序排序,最后输出结果,要求通过终端和SparkWebUI观察该应用程序的运行过程。(6)使用Python语言编写SparkStreaming独立应用程序,将Flume作为SparkStreaming输入源,实现对Flume消息的实时词频统计。要求从终端上不断给FlumeSource(netcat类型)发送各种消息,Flume把消息汇集到Sink(avro类型),由Sink把消息推送给SparkStreaming。(7)关闭Spark集群。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解Spark运行架构。(2)理解RDD的设计思想,掌握RDD的创建和操作。(3)理解Spark部署要点包括运行环境、运行模式、配置文件spark-env.sh。(4)熟练掌握在Linux环境下部署Spark集群,掌握交互式编程pyspark、运行独立应用程序spark-submit的使用方法,使用Python、Java或Scala进行RDD编程、SparkStreaming编程,实现海量数据的离线处理和实时处理。重点难点:重点为理解Spark部署要点包括运行环境、运行模式、配置文件spark-env.sh,熟练掌握在Linux环境下部署Spark集群,掌握交互式编程pyspark、运行独立应用程序spark-submit的使用方法,使用Python、Java或Scala进行RDD编程、SparkStreaming编程,实现海量数据的离线处理和实时处理;难点为掌握使用Python、Java或Scala进行RDD编程、SparkStreaming编程,实现海量数据的离线处理和实时处理。说明:注意用电安全。实验九FlinkStandalone集群部署和基本编程(选修)任务:部署FlinkStandalone集群,使用Scala语言编写Flink批处理程序和Flink流处理程序。场所:计算机实验室。内容:(1)规划FlinkStandalone集群。(2)部署FlinkStandalone集群。(3)启动FlinkStandalone集群。(4)验证FlinkStandalone集群。(5)使用DataSetAPI采用Scala语言编写Flink批处理程序,实现对内容为英文字符的HDFS文件的数据读取,统计单词词频,并将处理结果输出到HDFS文件中。(6)使用DataStreamAPI采用Scala语言编写Flink流处理程序,采用Socket数据源,由Socket服务器端不断向客户端Flink流处理程序发送数据流(内容为英文字符),使统计单词词频,要求使用滚动窗口实现且窗口大小为5s(即每隔5秒对数据流进行一次切分),并将处理结果输出到终端上。(7)关闭FlinkStandalone集群。教学方法:演示法,实验教学法,任务驱动法,小组讨论。基本要求:(1)理解Flink运行架构。(2)理解Flink编程模型,掌握常用的DataStreamAPI和DataSetAPI。(3)理解Flink部署要点包括运行环境、运行模式,以及配置文件flink-conf.yaml、masters和workers等。(4)熟练掌握在Linux环境下部署FlinkStandalone集群,掌握FlinkWebUI、FlinkShell常用命令如“flinkrun”等的使用方法,掌握使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程,实现海量数据的批处理和流计算。重点难点:重点为理解Flink编程模型,掌握常用的DataStreamAPI和DataSetAPI,理解Flink部署要点包括运行环境、运行模式,以及配置文件flink-conf.yaml、masters和workers等,熟练掌握在Linux环境下部署FlinkStandalone集群,掌握使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程,实现海量数据的批处理和流计算;难点为掌握使用Python、Java或Scala语言进行DataSetAPI编程、DataStreamAPI编程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论