版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章大数据概述一、教学目标掌握大数据的基本概念、特征及应用场景,了解大数据技术发展历程。掌握Hadoop生态系统的核心组件及功能,理解大数据处理的基本流程。通过大数据在国家战略、民生服务等领域的应用案例,引导学生认识大数据技术的社会价值,培养数据强国意识。二、教学要求理解数据、大数据、大数据技术的核心概念。掌握大数据的4V特征及典型应用场景。熟悉Hadoop生态系统的组成及各组件的作用。了解大数据处理的全流程及各阶段的核心技术。三、教学内容提要大数据的定义与特征大数据技术发展历程Hadoop生态系统大数据处理流程大数据技术的应用与发展趋势四、教学重点、难点及解决方法教学重点:大数据的4V特征、Hadoop生态系统核心组件、大数据处理流程。教学难点:分布式系统的基本概念、Hadoop生态各组件的协同工作机制。解决方法:通过生活中的大数据应用案例引入概念,采用图示法展示Hadoop生态架构,结合在线教育、电商等实际场景讲解大数据处理流程。五、课时安排4学时+线上2学时六、检测教学目标实现程度的具体措施和要求检查学生在线学习进度和活跃度;并通过章前测验学生基础知识点的掌握程度;用启发的方式引导学生对大数据的形成与现代发展,以及其功能、性能指标的掌握;学生对照分析商业原型系统(样例),在系统上寻找本章涉及概念的具体体现。七、教学方法学生在智慧教学平台上学习引入的国一流课程的视频;学生在智慧教学平台上下载样例大数据应用系统,并分析其功能;学生选择安装VMware虚拟机和CentOS操作系统,为后续实验做准备;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。八、教学内容1.1大数据的定义与特征1.1.1数据与大数据数据:描述事物的符号记录称为数据。数据不仅仅是数字,广义的理解,数据的种类很多,文字、图形、图像、声音、用户行为记录等都是数据。数据的含义称为数据的语义,数据与其语义是不可分的。大数据:指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。1.1.2大数据的4V特征Volume(数据量大):数据规模从TB级别跃升到PB、EB级别。Velocity(处理速度快):要求实时或准实时处理,区别于传统批处理。Variety(数据类型多):包括结构化数据、半结构化数据和非结构化数据。Value(价值密度低):海量数据中蕴含少量有价值信息,需通过分析挖掘。1.1.3大数据的应用场景互联网行业:用户行为分析、推荐系统、精准营销。金融行业:风险控制、欺诈检测、量化交易。医疗行业:疾病预测、个性化医疗、医学影像分析。教育行业:个性化学习、教学质量评估、教育资源优化。1.2大数据技术发展历程萌芽期(2003-2006):Google发表GFS、MapReduce、BigTable三篇论文,奠定大数据技术基础。成长期(2006-2012):Hadoop诞生并快速发展,成为大数据处理的事实标准。成熟期(2012-至今):Spark、Flink等新一代计算框架兴起,大数据技术生态日益完善。1.3Hadoop生态系统1.3.1Hadoop核心组件HDFS(HadoopDistributedFileSystem):分布式文件系统,提供高吞吐量的数据访问。MapReduce:分布式计算框架,将计算任务分解为Map和Reduce两个阶段。YARN:资源调度框架,负责集群资源的管理和任务调度。1.3.2Hadoop生态其他组件Hive:数据仓库工具,将SQL转换为MapReduce任务执行。HBase:分布式列存储数据库,支持随机实时读写。Flume:日志采集工具,用于采集、聚合和传输大量日志数据。Sqoop:数据传输工具,用于Hadoop与关系型数据库之间的数据导入导出。Spark:内存计算框架,提供比MapReduce更快的处理速度。Superset:数据可视化工具,用于将分析结果以图表形式展示。1.4大数据处理流程数据采集:通过Flume、Sqoop等工具从不同数据源采集数据。数据存储:将采集到的数据存储在HDFS、HBase等分布式存储系统中。数据处理与分析:使用MapReduce、Spark等框架进行数据清洗、转换和分析。数据导出:将分析结果导出到关系型数据库或其他系统中。数据可视化:通过Superset等工具将数据可视化,为决策提供支持。1.5大数据技术的发展趋势实时计算:Flink等流处理框架的广泛应用。云原生大数据:大数据服务上云,实现弹性伸缩和按需付费。大数据与人工智能融合:大数据为AI提供数据支撑,AI提升大数据分析能力。数据安全与隐私保护:成为大数据发展的重要议题。九、作业1、从学习资源的“样例系统库”中选择一个大数据应用系统开展研究工作:a.运行系统,了解它的基本功能;b.分析大数据技术在应用系统中所起到的作用;c.判断其所用的是哪一种大数据处理框架;d.判断系统可能用到的数据表有哪些;(尽可能多的写出表名)2、在自己的电脑中安装VMware虚拟机和CentOS操作系统;a.配置虚拟机网络,确保能够访问外网;b.安装JDK并配置环境变量。3、下周将抽取同学报告学习成果。十、本章小结本章概述了大数据的基本概念,并通过对大数据技术发展历程的介绍,阐述了大数据技术产生和发展的背景,也说明了大数据系统的优点。Hadoop生态系统是大数据技术的核心和基础,本章介绍了Hadoop生态的核心组件和其他常用组件。大数据处理流程是大数据项目开发的基本框架,本章讲解了数据采集、存储、处理、导出和可视化五个阶段的核心技术。最后介绍了大数据技术的发展趋势,使学生了解大数据技术的最新动态。第二章Hadoop分布式文件系统HDFS一、教学目标掌握HDFS的架构设计及核心组件功能,理解HDFS的文件读写流程。熟练使用HDFSShell命令进行文件操作,能够使用JavaAPI进行HDFS文件读写。理解HDFS的高可用性与容错机制,培养系统思维和工程实践能力。通过HDFS分布式架构的讲解,引导学生养成严谨的学习态度和科学精神。二、教学要求了解HDFS的设计目标与局限性。掌握HDFS的架构原理及NameNode、DataNode、SecondaryNameNode的功能。掌握HDFS的文件读写流程。熟练使用HDFSShell命令进行文件和目录操作。能够使用JavaAPI实现HDFS文件的创建、上传、下载和删除。了解HDFS的高可用性与容错机制。三、教学内容提要HDFS概述HDFS架构设计HDFS文件读写流程HDFSShell操作HDFSJavaAPI编程HDFS的高可用性与容错机制四、教学重点、难点及解决方法教学重点:HDFS架构、文件读写流程、Shell命令、JavaAPI编程。教学难点:HDFS文件读写流程、高可用性机制。解决方法:通过动画演示文件读写过程,结合实验操作加深理解,采用案例教学法讲解JavaAPI的使用。五、课时安排6学时+线上2学时六、检测教学目标实现程度的具体措施和要求检查学生在线学习进度;并通过章前测验学生基础知识点的掌握程度;课堂测验学生对HDFS架构、文件读写流程等基本概念的掌握;学生对照分析样例系统,在系统上寻找本章涉及概念的具体体现。七、教学方法学生在智慧教学平台上学习MOOCs视频;学生操作样例大数据应用系统,体会HDFS的作用;教师结合文件操作,讲解HDFS原理等;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。八、教学内容2.1HDFS概述2.1.1HDFS的设计目标存储超大文件:支持GB、TB甚至PB级别的文件。流式数据访问:一次写入,多次读取,适合批量处理。运行在廉价硬件上:通过冗余备份保证数据可靠性。2.1.2HDFS的局限性不适合低延迟数据访问:不适合实时性要求高的应用。不适合大量小文件存储:会占用NameNode大量内存。不支持多用户并发写入和随机修改:仅支持追加写入。2.2HDFS架构设计2.2.1核心组件NameNode:主节点,负责管理文件系统的命名空间、元数据和客户端的访问请求。DataNode:从节点,负责存储实际的数据块,处理数据的读写请求。SecondaryNameNode:辅助NameNode,定期合并FsImage和EditLog,减轻NameNode负担。2.2.2数据块机制HDFS将文件划分为固定大小的数据块(默认128MB)。每个数据块默认有3个副本,存储在不同的DataNode上,保证数据可靠性。2.3HDFS文件读写流程2.3.1文件写入流程客户端向NameNode发起文件写入请求。NameNode检查文件是否存在,客户端是否有权限。NameNode返回可写入的DataNode列表。客户端将数据划分为数据包,依次写入各个DataNode。数据写入完成后,客户端通知NameNode关闭文件。2.3.2文件读取流程客户端向NameNode发起文件读取请求。NameNode返回文件的数据块位置信息。客户端直接从最近的DataNode读取数据块。所有数据块读取完成后,客户端关闭连接。2.4HDFSShell操作基本命令格式:hdfsdfs-command<args>常用命令:hdfsdfs-ls<path>:列出目录内容。hdfsdfs-mkdir<path>:创建目录。hdfsdfs-put<local><remote>:上传本地文件到HDFS。hdfsdfs-get<remote><local>:下载HDFS文件到本地。hdfsdfs-cat<path>:查看文件内容。hdfsdfs-rm<path>:删除文件。hdfsdfs-rm-r<path>:递归删除目录。2.5HDFSJavaAPI编程2.5.1开发环境搭建导入Hadoop相关依赖包。配置Hadoop环境变量。2.5.2常用APIFileSystem:文件系统的抽象类,用于操作HDFS文件。Path:表示文件或目录的路径。FSDataInputStream:HDFS文件输入流,用于读取文件。FSDataOutputStream:HDFS文件输出流,用于写入文件。2.5.3编程实例创建目录。上传文件。下载文件。删除文件。2.6HDFS的高可用性与容错机制2.6.1数据块副本机制每个数据块默认3个副本,存储在不同机架的DataNode上。当某个DataNode故障时,NameNode会自动复制数据块到其他节点。2.6.2NameNode高可用采用Active-Standby模式,两个NameNode同时运行。使用ZooKeeper实现自动故障转移。九、作业1、进一步分析上次选择的样例系统,结合样例系统谈一谈HDFS的特点和作用。2、结合样例系统,举例解释和说明相关概念:数据块副本NameNodeDataNodeSecondaryNameNode命名空间元数据数据块副本机制高可用性3、抽取同学报告学习成果。十、本章小结HDFS是Hadoop生态系统的核心存储组件,本章系统讲解了HDFS的重要概念,包括HDFS的设计目标、架构设计、文件读写流程、Shell操作和JavaAPI编程。介绍了HDFS的高可用性与容错机制,使学生了解HDFS如何保证数据的可靠性和可用性。通过本章学习,学生应掌握HDFS的基本原理和操作方法,能够使用HDFS进行分布式文件存储。第三章分布式计算框架MapReduce一、教学目标掌握MapReduce编程模型与思想,理解MapReduce的执行流程。能够独立编写常见的MapReduce程序,解决实际数据处理问题。初步具备使用MapReduce进行复杂数据处理的能力。二、教学要求了解MapReduce的设计思想与特点。掌握MapReduce的编程模型和核心概念。掌握MapReduce的执行流程和各阶段的工作原理。能够编写Mapper、Reducer和Driver类,实现常见的数据处理任务。了解MapReduce的序列化、排序、分区和Combiner机制。三、教学内容提要MapReduce概述MapReduce编程模型MapReduce执行流程MapReduce核心组件典型MapReduce案例MapReduce高级特性四、教学重点、难点及解决方法重点熟悉MapReduce编程模型和执行流程。分区、嵌套查询、分组查询是几大难点。作业、实验结合样例大数据应用系统中增加实际操作,中间设置辨析、拓展环节。课堂讲解结合实例来予以说明加强理解。五、课时安排10学时+线上3学时六、检测教学目标实现程度的具体措施和要求检查学生在线学习进度;并通过章前测验学生基础知识点的掌握程度;课堂测验学生的掌握程度;增加拓展实验,考核学生创新、综合运用知识的情况;学生分组设计大数据应用系统,制作设计文档、代码等并能通过PPT路演。七、教学方法学生在智慧教学平台上学习MOOCs视频;学生结合样例大数据应用系统,完成教师设计的作业题和实验题;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。八、教学内容3.1MapReduce概述3.1.1MapReduce的设计思想分而治之:将复杂问题分解为多个简单的子问题,并行处理。抽象为Map和Reduce两个阶段:Map阶段负责数据的过滤和转换,Reduce阶段负责数据的聚合和计算。3.1.2MapReduce的特点易于编程:用户只需关注业务逻辑,无需关心分布式细节。良好的扩展性:可以通过增加节点线性扩展集群处理能力。高容错性:节点故障时自动重新分配任务。适合海量数据处理:能够处理TB、PB级别的数据。3.2MapReduce编程模型3.2.1核心概念InputFormat:负责将输入数据切分为多个InputSplit,并将其转换为键值对。Mapper:处理输入的键值对,输出中间结果键值对。Partitioner:对Mapper输出的中间结果进行分区,决定哪个Reducer处理该分区。Combiner:在Map端进行局部聚合,减少数据传输量。Reducer:对相同键的中间结果进行聚合,输出最终结果。OutputFormat:负责将Reducer的输出写入文件系统。3.2.2数据类型MapReduce使用自定义的序列化类型,如LongWritable、Text、IntWritable等。键值对格式:<key,value>,其中key和value必须实现Writable接口。3.3MapReduce执行流程作业提交:客户端向YARN提交MapReduce作业。资源申请:ApplicationMaster向ResourceManager申请资源。任务分配:ResourceManager将资源分配给NodeManager,启动Container。Map阶段:在Container中运行Mapper任务,处理输入数据。Shuffle阶段:对Mapper输出的中间结果进行分区、排序、合并。Reduce阶段:运行Reducer任务,对中间结果进行聚合。结果输出:将最终结果写入HDFS。3.4典型MapReduce案例3.4.1WordCount(单词计数)功能:统计文本文件中每个单词出现的次数。Mapper:将每行文本拆分为单词,输出<单词,1>。Reducer:对相同单词的计数进行求和,输出<单词,总次数>。3.4.2数据去重功能:去除数据集中的重复记录。Mapper:将每条记录作为key输出,value为任意值。Reducer:直接输出key,实现去重。3.4.3数据排序功能:对数据集中的数值进行排序。Mapper:将数值作为key输出,value为任意值。Reducer:直接输出key,实现排序。3.5MapReduce高级特性3.5.1序列化MapReduce使用Writable接口实现序列化,比Java原生序列化更高效。自定义数据类型需要实现WritableComparable接口。3.5.2分区默认使用HashPartitioner,根据key的哈希值进行分区。自定义Partitioner需要继承Partitioner类,重写getPartition方法。3.5.3CombinerCombiner是一个特殊的Reducer,运行在Map端。作用是对Mapper输出的中间结果进行局部聚合,减少网络传输量。只有满足结合律和交换律的操作才能使用Combiner。九、作业1、进一步分析选择的样例系统,结合样例系统逐条谈一谈MapReduce的特点。2、结合样例系统,举例解释和说明相关理论和概念:Map阶段Reduce阶段Shuffle阶段MapperReducerPartitionerCombiner键值对序列化第一次项目组作业:根据所分配的样例系统,完成新大数据系统的设计和创建:本次设计主要通过经验法来完成:1、小组结合现有知识对样例系统开展研究和讨论;2、重点讨论系统所具备的基本功能和所需要的数据,以及数据之间的联系等;3、确定系统所需要的数据表,以及相应的存储格式、计算逻辑等;4、分工,并协作完成新系统的HDFS文件存储和MapReduce程序设计以及编码;5、制作PPT,准备演示环节;6、下周二上课时,将抽选一名同学,作为小组代表路演并评分。需要注意的问题:1、小组编码的统一性、规范性;2、分工合作,小组长做好统筹协调。第二次项目组作业:进一步完善大数据系统及数据处理逻辑,根据系统功能页面,写出相应的MapReduce程序1、进一步分析样例系统开展研究和讨论。思考一个文件是否能直接对应一个数据集,系统中有哪些数据处理任务;2、重新确定系统所需要的数据存储结构,以及相应的计算逻辑,并用MapReduce实现;3、分工,并协作并根据系统功能页面,写出相应的数据处理MapReduce程序;4、制作PPT,准备演示环节;5、下周二上课时,将抽选一名同学,作为小组代表路演并评分。需要注意的问题:1、小组编码的统一性、规范性;2、分工合作,小组长做好统筹协调。十、总结本章重点内容包括:MapReduce的设计思想、编程模型、执行流程和核心组件。通过典型案例讲解了MapReduce程序的编写方法,介绍了序列化、分区和Combiner等高级特性。MapReduce是分布式计算的基础框架,掌握MapReduce编程是大数据开发的必备技能。第四章数据仓库工具Hive一、教学目标了解Hive的特点,掌握Hive的基本语法。初步具备使用Hive进行数据仓库开发的能力。介绍身边生活中的数据安全实例;分析国家所面临的数据安全形势,引导学生建立健全数据安全和法律意识,以及为国家数据安全体系建设而努力学习的国家社会责任感。二、教学要求掌握数据库和表的创建掌握数据查询掌握数据更新掌握视图的创建、查询和更新三、教学内容提要Hive概述Hive架构与工作原理Hive数据模型HiveQL数据定义语言(DDL)HiveQL数据操纵语言(DML)Hive查询优化Hive用户自定义函数(UDF)四、教学重点、难点及解决方法Hive安全架构与权限控制,结合实例讲解;DCL的使用,结合实例讲解;五、课时安排8学时+线上2学时六、检测教学目标实现程度的具体措施和要求检查学生在线学习进度;并通过章前测验学生基础知识点的掌握程度;课堂测验学生的掌握程度;增加拓展实验,考核学生创新、综合运用知识的情况;学生分组设计大数据应用系统,制作设计文档、代码等和并能通过PPT路演。七、教学方法学生在智慧教学平台上学习MOOCs视频;学生结合样例大数据应用系统,分组研讨样例大数据应用系统的数据仓库设计;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。八、教学内容4.1Hive概述4.1.1Hive的定义Hive是基于Hadoop的数据仓库工具,将结构化数据映射为一张数据库表。提供类SQL的查询语言HiveQL,将SQL转换为MapReduce任务执行。4.1.2Hive的特点易于使用:熟悉SQL的用户可以快速上手。扩展性好:可以通过增加节点扩展处理能力。容错性高:基于Hadoop的容错机制。适合批量处理:不适合实时查询和随机读写。4.2Hive架构与工作原理4.2.1Hive架构用户接口:CLI、JDBC/ODBC、WebUI。元数据存储(Metastore):存储数据库、表、分区等元数据信息,默认使用Derby数据库,生产环境使用MySQL。驱动器(Driver):负责解析HiveQL语句,生成执行计划,提交任务到Hadoop集群。Hadoop:Hive使用HDFS存储数据,使用MapReduce或Spark执行计算任务。4.2.2Hive工作原理用户提交HiveQL语句。Driver将SQL语句解析为抽象语法树(AST)。将AST转换为逻辑执行计划。优化逻辑执行计划。将逻辑执行计划转换为物理执行计划(MapReduce任务)。提交任务到Hadoop集群执行。将执行结果返回给用户。4.3Hive数据模型4.3.1数据库用于隔离不同用户和应用的数据。默认数据库为default。4.3.2表内部表:数据由Hive管理,删除表时数据也会被删除。外部表:数据不由Hive管理,删除表时仅删除元数据,数据仍然存在。4.3.3分区将表按照某个字段划分为多个分区,每个分区对应HDFS上的一个目录。可以提高查询效率,避免全表扫描。4.3.4分桶将表按照某个字段的哈希值划分为多个桶,每个桶对应HDFS上的一个文件。可以提高数据抽样和连接查询的效率。4.4HiveQL数据定义语言(DDL)4.4.1数据库操作创建数据库:CREATEDATABASE[IFNOTEXISTS]db_name;删除数据库:DROPDATABASE[IFEXISTS]db_name;使用数据库:USEdb_name;4.4.2表操作创建表:CREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name(col1data_type[COMMENT'comment'],col2data_type[COMMENT'comment'],...)[COMMENT'tablecomment'][PARTITIONEDBY(col3data_type,...)][CLUSTEREDBY(col4)INTOnum_bucketsBUCKETS][ROWFORMATDELIMITEDFIELDSTERMINATEDBY','][LOCATION'hdfs_path'];删除表:DROPTABLE[IFEXISTS]table_name;修改表:ALTERTABLEtable_nameRENAMETOnew_table_name;4.5HiveQL数据操纵语言(DML)4.5.1数据加载从本地文件系统加载:LOADDATALOCALINPATH'local_path'[OVERWRITE]INTOTABLEtable_name;从HDFS加载:LOADDATAINPATH'hdfs_path'[OVERWRITE]INTOTABLEtable_name;4.5.2数据查询基本查询:SELECTcol1,col2FROMtable_nameWHEREcondition;分组查询:SELECTcol1,COUNT(*)FROMtable_nameGROUPBYcol1;连接查询:SELECTa.col1,b.col2FROMtable_aaJOINtable_bbONa.id=b.id;子查询:SELECT*FROM(SELECTcol1,col2FROMtable_name)tWHEREcondition;4.6视图视图的定义建立视图的语句格式为:CREATEVIEW<视图名>[(<列名>[,<列名>]・・・)]AS<子查询>[WITHCHECKOPTION];删除视图的语句格式为:DROPVIEW<视图名>;视图的概念具有很多优点,主要有:1.视图对于数据仓库的重构提供了一定程度的逻辑独立性。2.简化了用户观点。3.视图机制使不同的用户能以不同的方式看待同一数据。4.视图机制对机密数据提供了自动的安全保护功能。九、作业第三次小组作业:根据数据仓库设计的需要进一步完善系统设计。优化前面两次小组作业的HiveQL代码,要求任务落实到人。优化PPT,标明每人的分工抽选一名同学,作为小组代表路演并评分。需要重点介绍自己的工作需要注意的问题:1、小组编码的统一性、规范性;2、分工合作,小组长做好统筹协调十、本章重点本章重点内容是:数据仓库是大数据分析的核心,Hive作为数据仓库工具,是大数据开发的重要技术。Hive的架构与工作原理、数据模型、HiveQL语法是本章的核心内容。实现数据仓库开发的技术和方法:数据定义数据查询数据更新视图技术用户自定义函数第五章内存计算框架Spark一、教学目标及要求熟练掌握Spark的架构与核心概念,掌握RDD的特性和操作原理。掌握SparkSQL的一般使用方法。熟练掌握大数据应用系统的Spark开发能力。通过Spark编程学习,培养学生认真细致的工作习惯。二、教学内容提要Spark概述Spark架构与核心概念SparkCore编程SparkSQLSparkStreaming流处理基础三、教学重点、难点及解决方法重点掌握RDD的创建、转换和行动操作。结合实例讲解、学生实操体会。四、课时安排8学时+线上2学时五、检测教学目标实现程度的具体措施和要求检查学生在线学习进度;并通过章前测验学生基础知识点的掌握程度;课堂测验学生的掌握程度;增加拓展实验,考核学生创新、综合运用知识的情况;学生分组设计大数据应用系统,制作设计文档、代码等和并能通过PPT路演。六、教学方法学生在智慧教学平台上学习MOOCs视频;学生结合样例大数据应用系统,分组研讨样例大数据应用系统的Spark实现;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。教学内容5.1Spark概述5.1.1Spark的定义Spark是一个快速、通用的大数据处理引擎。支持内存计算,比MapReduce快100倍以上。提供Scala、Java、Python、R等多种语言的API。5.1.2Spark的特点速度快:基于内存计算,支持DAG执行引擎。易用性好:提供丰富的API,支持多种编程语言。通用性强:支持批处理、流处理、机器学习、图计算等多种计算模式。兼容性好:可以运行在Hadoop、Mesos、Kubernetes等集群上。5.1.3Spark生态系统SparkCore:Spark的核心组件,提供RDD编程接口。SparkSQL:用于处理结构化数据的组件,支持SQL查询。SparkStreaming:用于实时流处理的组件。MLlib:机器学习库,提供常用的机器学习算法。GraphX:图计算库,用于图数据处理。5.2Spark架构与核心概念5.2.1Spark架构Driver:运行应用程序的main()函数,创建SparkContext,负责将用户程序转换为任务。Executor:运行在Worker节点上的进程,负责执行Driver分配的任务。ClusterManager:负责集群资源的管理和分配,支持Standalone、YARN、Mesos等模式。Worker:集群中的工作节点,负责启动Executor进程。5.2.2核心概念RDD(ResilientDistributedDataset):弹性分布式数据集,是Spark的核心数据结构。DAG(DirectedAcyclicGraph):有向无环图,描述RDD之间的依赖关系。Stage:根据RDD的依赖关系将DAG划分为多个阶段。Task:Stage中的基本执行单元,一个Stage包含多个Task。5.3SparkCore编程5.3.1RDD的特性分区:RDD被划分为多个分区,分布在集群的不同节点上。不可变性:RDD一旦创建就不能修改,只能通过转换操作生成新的RDD。依赖关系:RDD之间存在依赖关系,分为窄依赖和宽依赖。惰性计算:RDD的转换操作不会立即执行,只有当遇到行动操作时才会触发计算。持久化:可以将RDD缓存到内存或磁盘中,提高重复计算的效率。5.3.2RDD的创建从集合创建:sc.parallelize(Array(1,2,3,4,5))从外部存储创建:sc.textFile("hdfs://path/to/file")5.3.3RDD的操作转换操作(Transformation):生成新的RDD,如map、filter、flatMap、groupByKey、reduceByKey等。行动操作(Action):触发计算并返回结果,如count、collect、take、saveAsTextFile等。5.3.4RDD的持久化使用cache()或persist()方法将RDD缓存到内存或磁盘中。持久化级别:MEMORY_ONLY、MEMORY_AND_DISK、DISK_ONLY等。5.4SparkSQL5.4.1DataFrame与DatasetDataFrame:以列的形式组织的分布式数据集,类似于关系型数据库中的表。Dataset:强类型的DataFrame,提供编译时类型检查。5.4.2SparkSQL的使用创建SparkSession:valspark=SparkSession.builder().appName("SparkSQLExample").master("local[*]").getOrCreate()读取数据:valdf=spark.read.csv("path/to/file.csv")数据查询:df.createOrReplaceTempView("people")spark.sql("SELECTname,ageFROMpeopleWHEREage>20").show()数据操作:支持select、filter、groupBy、join等操作。5.5SparkStreaming流处理基础5.5.1SparkStreaming的原理将实时数据流切分为多个小的批次,每个批次作为一个RDD进行处理。支持多种数据源:Kafka、Flume、Twitter、TCP套接字等。5.5.2简单示例从TCP套接字读取数据,进行单词计数:vallines=ssc.socketTextStream("localhost",9999)valwords=lines.flatMap(.split(""))valwordCounts=words.map(x=>(x,1)).reduceByKey(+_)wordCounts.print()ssc.start()ssc.awaitTermination()八、作业继续完成第三次小组作业九、总结本章重点内容是:Spark是新一代大数据处理框架,具有速度快、易用性好、通用性强等特点。Spark的架构与核心概念、SparkCore编程、SparkSQL是本章的核心内容。Spark的编程模型和API是大数据开发的重要技能,掌握Spark能够大幅提高大数据处理的效率。第六章数据仓库建模一、教学目标及要求掌握数据仓库的基本概念与特征,理解维度建模的核心思想。熟练掌握星型模型、雪花模型的设计方法。了解星座模型的概念。具备数据仓库建模的实践能力。通过数据仓库建模的学习,培养学生效率优先的思维。二、教学内容提要数据仓库概述数据建模方法维度建模核心概念维度模型设计数据仓库分层架构数据仓库开发流程三、教学重点、难点及解决方法重点掌握如何将业务需求转换为数据仓库模型。理论和实践结合,通过实例讲解分析、学生研讨样例大数据应用系统所对应的数仓模型的规范化。四、课时安排4学时+线上2学时五、检测教学目标实现程度的具体措施和要求检查学生在线学习进度;并通过章前测验学生基础知识点的掌握程度;课堂测验学生的掌握程度;增加拓展实验,考核学生创新、综合运用知识的情况;学生分组设计大数据应用系统,制作设计文档、代码等和并能通过PPT路演。六、教学方法学生在智慧教学平台上学习MOOCs视频;学生结合样例大数据应用系统,研讨数据仓库建模方法;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。七、教学内容6.1数据仓库概述6.1.1数据仓库的定义数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。6.1.2数据仓库的特征面向主题:围绕特定的主题组织数据,如用户、课程、销售等。集成性:将多个数据源的数据进行清洗、转换和整合,保证数据的一致性。稳定性:数据一旦写入,很少被修改或删除,主要用于查询分析。历史性:保存历史数据,反映数据随时间的变化情况。6.1.3数据仓库与数据库的区别数据库面向业务操作,处理实时、当前数据,以增删改查为主;数据仓库面向分析决策,处理历史、汇总数据,以查询为主。数据库的数据量一般为GB级别,数据仓库的数据量为TB、PB级别。数据库的设计目标是事务处理(OLTP),数据仓库的设计目标是分析处理(OLAP)。6.2数据建模方法6.2.1关系模型遵循第三范式(3NF),减少数据冗余。适合事务处理系统,不适合分析查询。6.2.2维度模型由事实表和维度表组成,以业务过程为中心。查询性能好,适合分析型系统。是数据仓库建模的主流方法。6.3维度建模核心概念6.3.1事实表存储业务过程的度量值,如销售额、访问次数、学习时长等。通常包含多个外键,关联到维度表。按粒度可分为原子事实表、汇总事实表。6.3.2维度表描述事实的上下文信息,如时间、用户、课程、地点等。包含多个属性,用于过滤和分组查询。常见的维度:时间维度、用户维度、产品维度、地区维度等。6.4维度模型设计6.4.1星型模型由一个事实表和多个维度表组成。维度表直接关联到事实表,没有层级关系。结构简单,查询性能好,是最常用的维度模型。6.4.2雪花模型是星型模型的扩展,维度表可以有子维度表。减少了数据冗余,但增加了查询的复杂度。6.4.3星座模型包含多个事实表,共享维度表。适合复杂的业务场景,多个业务过程共享维度信息。6.5数据仓库分层架构6.5.1ODS层(OperationalDataStore)原始数据层,存储从数据源采集到的原始数据。不做任何修改,保持数据的原始面貌。主要作用是数据备份和溯源。6.5.2DWD层(DataWarehouseDetail)数据明细层,对原始数据进行清洗、转换和规范化。去除重复数据、缺失值和异常值。按照业务主题组织数据,为后续分析做准备。6.5.3DWS层(DataWarehouseService)数据汇总层,对DWD层的数据进行聚合和统计。按照不同的维度和粒度生成汇总表。减少后续查询的计算量,提高查询效率。6.5.4ADS层(ApplicationDataStore)应用数据层,存储面向具体业务需求的统计结果。直接为报表、可视化和数据分析提供数据支持。6.6数据仓库开发流程业务调研:了解业务需求和业务流程,确定数据仓库的主题和指标。需求分析:明确数据仓库的功能需求和性能需求。概念模型设计:设计E-R图,确定实体和实体之间的关系。逻辑模型设计:设计维度模型,确定事实表和维度表的结构。物理模型设计:根据具体的数据库产品,设计表的物理结构。数据ETL:进行数据的抽取、转换和加载。数据测试:验证数据的准确性、完整性和一致性。部署上线:将数据仓库部署到生产环境,提供数据服务。八、作业在线教育平台销售关系模式如下:COURSE_SALE(CourseID,Date_sold,Teacher,Commission,Discount_amt)其中CourseID为课程编号,Date_sold为销售日期,Teacher为授课教师,Commission是销售提成;Discount_amt是折扣。一门课程可以被多个教师所销售,一个教师可以销售不同的课程,课程销售时在不同的销售期有不同的折扣,销售公司根据教师来给出提成。(1)写出关系模式的主码和函数依赖。(2)该关系模式最高满足第几范式?并说明理由。(3)如果关系模式不满足3NF,分解该关系模式,使得分解后的关系模式均满足3NF。电商平台的订单关系模式如下:ORDER(OrderID,UserID,Date,ProductID,Quantity,Price,Total)其中OrderID为订单编号,UserID为用户编号,Date为下单日期,ProductID为商品编号,Quantity为购买数量,Price为商品单价,Total为订单总金额。(1)写出关系模式的主码和函数依赖。(2)该关系模式最高满足第几范式?并说明理由。(3)如果关系模式不满足3NF,分解该关系模式,使得分解后的关系模式均满足3NF。解释以下概念,并在本小组的系统中找出至少一个相应实例予以说明:(1)事实表(2)维度表(3)星型模型(4)雪花模型(5)ODS层(6)DWD层(7)DWS层(8)ADS层九、总结本章介绍了数据仓库的基本概念、数据建模方法、维度建模核心概念、维度模型设计、数据仓库分层架构和开发流程。数据仓库建模是大数据分析的基础,合理的数据仓库模型能够提高数据分析的效率和准确性。并不是规范化程度越高,模型就越好,必须结合应用环境和现实世界的具体情况合理地选择数据仓库模式。第七章大数据系统设计一、教学目的及要求理解大数据系统设计的特点是数据与处理相结合;了解大数据系统设计的六个阶段;了解需求分析阶段的方法和要解决的问题;掌握大数据系统逻辑结构设计的步骤和方法,会从业务需求出发设计数据模型;培育工程化的设计理念和系统关联思维。二、教学内容及课时安排大数据系统设计概述需求分析概念结构设计逻辑结构设计大数据系统的物理设计大数据系统的实施和维护三、教学重点、难点及解决方法重点掌握大数据系统逻辑结构设计的步骤和方法,数据模型的设计方法;重点掌握业务需求转换为数据模型的方法;重点掌握应用数据仓库理论优化数据模型;理论结合实际,教师案例教学,学生分组设计开发。四、课时安排3学时+线上2学时五、检测教学目标实现程度的具体措施和要求检查学生在线学习进度;并通过章前测验学生基础知识点的掌握程度;课堂测验学生的掌握程度;增加拓展实验,考核学生创新、综合运用知识的情况;学生分组设计大数据应用系统,制作设计文档、代码等和并能通过PPT路演。六、教学方法学生在智慧教学平台上学习MOOCs视频;小组教学:学生分析样例大数据应用系统的功能,线上、线下讨论,做出需求分析、完成“新系统”的大数据设计,并形成含代码的设计文档,制作PPT轮流汇报,并采用生讲生评、生讲师评等;教师翻转教学,并采用案例法、PBL等方法教学;结合思政案例。七、教学内容7.1大数据系统设计概述7.1.1大数据系统设计的特点大数据系统设计强调数据设计与处理设计相结合,是一种“反复探寻,逐步求精”的过程。首先从数据模型开始设计,以数据模型为核心进行展开,大数据系统设计和应用系统设计相结合,建立一个完整、独立、共享、冗余小、安全有效的大数据系统。7.1.2大数据系统设计的步骤按规范设计法可将大数据系统设计分为六个阶段:(1)系统需求分析阶段(2)概念结构设计阶段(3)逻辑结构设计阶段(4)物理设计阶段(5)大数据系统实施阶段(6)大数据系统运行与维护阶段7.2需求分析需求分析就是分析用户的要求,是设计大数据系统的起点。结果是否准确地反映了用户的实际要求,将直接影响后面各个阶段的设计,并影响设计结果是否合理和实用。7.2.1需求分析的任务详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,调查的重点是“数据”和“处理”,获得用户对大数据系统的要求。(1)信息要求用户需要从大数据系统中获得信息的内容与性质,由信息要求可以导出数据要求,即在大数据系统中需要存储哪些数据。(2)处理要求用户要完成的处理功能,对处理性能的要求。(3)安全性与完整性要求7.2.2需求分析的方法调查清楚用户的实际需求并进行初步分析,与用户达成共识,分析与表达这些需求,调查用户需求的步骤:(1)调查组织机构情况(2)调查各部门的业务活动情况(3)协助用户明确对新系统的各种要求,包括信息要求、处理要求、安全性与完整性要求(4)确定新系统的边界常用调查方法:(1)跟班作业:通过亲身参加业务工作了解业务活动的情况(2)开调查会:通过与用户座谈来了解业务活动情况及用户需求(3)请专人介绍(4)询问:对某些调查中的问题,可以找专人询问(5)设计调查表请用户填写:调查表设计合理,则很有效(6)查阅记录:查阅与原系统有关的数据记录,进一步分析和表达用户需求。分析方法:结构化分析方法(StructuredAnalysis,简称SA方法),SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统。对用户需求进行分析与表达后,需求分析报告必须提交给用户,征得用户的认可。7.2.3数据字典数据字典是关于大数据系统中数据的描述,即元数据,不是数据本身,数据字典在需求分析阶段建立,在大数据系统设计过程中不断修改、充实、完善,数据字典是进行详细的数据收集和数据分析所获得的主要结果。数据字典的内容数据项数据结构数据流数据存储处理过程数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。7.3概念结构设计7.3.1概念模型的特点(1)语义表达能力丰富。(2)易于交流和理解。(3)易于修改和扩充。(4)易于向各种数据模型转换。1.概念结构设计的方法设计概念结构可采用四种方法。(1)自顶向下。(2)自底向上。(3)逐步扩张。(4)混合策略。其中最常用的方法是自底向上。即自顶向下地进行需求分析,再自底向上地设计概念结构。2.概念结构设计的步骤自底向上的设计方法可分为两步:(1)进行数据抽象,设计局部概念模型,即设计用户视图。(2)集成各局部概念模型,形成全局概念模型,即视图的集成。3.数据抽象与局部概念模型设计概念结构是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。7.3.2维度模型概念结构设计首先要根据需求分析得到的结果(数据流图、数据字典等)对现实世界进行抽象,设计各个局部概念模型。1.数据抽象在系统需求分析阶段,最后得到了多层数据流图、数据字典和系统分析报告。建立局部概念模型,就是根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,作为设计分维度模型的出发点,让这组图中毎一部分对应一个局部应用。在前面选好的某一层次的数据流图中,每个局部应用都对应了一组数据流图,局部应用所涉及的数据存储在数据字典中。现在就是要将这些数据从数据字典中抽取出来,参照数据流图,确定每个局部应用包含哪些事实,这些事实又包含哪些属性,以及事实之间的联系及其类型。设计局部概念模型的关键就是正确划分事实和维度。事实和维度之间在形式上并无可以明显区分的界限,通常是按照现实世界中事物的自然划分来定义事实和维度,将现实世界中的事物进行数据抽象,得到事实和维度。一般有两种数据抽象:分类和聚集。①分类(Classification)分类定义某一类概念作为现实世界中一组对象的类型,将一组具有某些共同特性和行为的对象抽象为一个维度。对象和维度之间是“ismemberof”的关系。例如,在在线教育中,“张三”是一名学生,表示“张三”是学生中的一员,他具有学生们共同的特性和行为。②聚集(Aggregation)聚集定义某一类型的组成成份,将对象类型的组成成份抽象为维度的属性。组成成份与对象类型之间是“ispartof”的关系。例如,学号、姓名、性别、年龄、系别等可以抽象为学生维度的属性,其中学号是标识学生维度的主键。2.局部概念模型设计数据抽象后得到了事实和维度,实际上事实和维度是相对而言的,往往要根据实际情况进行必要的调整。在调整中要遵循两条原则:①事实具有度量信息,而维度没有。即维度必须是不可分的数据项,不能再由另一些属性组成。②维度不能与其他事实具有联系,联系只能发生在事实和维度之间。此外,我们可能会遇到这样的情况,同一数据项,可能由于环境和要求的不同,有时作为属性,有时则作为维度,此时必须根据实际情况而定。一般情况下,凡能作为属性对待的,应尽量作为属性,以简化概念模型的处理。全局概念模型设计局部概念模型设计完成之后,下一步就是集成各局部概念模型,形成全局概念模型,即视图的集成。视图集成的方法有两种:①多元集成法,一次性将多个局部维度模型合并为一个全局维度模型。②二元集成法,首先集成两个重要的局部视图,以后用累加的方法逐步将一个新的视图集成进来。在实际应用中,可以根据系统复杂性选择这两种方案。一般采用逐步集成的方法,如果局部视图比较简单,可以采用多元集成法。一般情况下,采用二元集成法,即每次只综合两个视图,这样可降低难度。无论使用哪一种方法,视图集成均分成两个步骤:①合并,消除各局部维度模型之间的冲突,生成初步概念模型。②优化,消除不必要的冗余,生成基本概念模型。合并局部维度模型,生成初步概念模型这个步骤将所有的局部维度模型综合成全局概念结构。全局概念结构它不仅要支持所有的局部概念模型,而且必须合理地表示一个完整、一致的大数据概念结构。由于各个局部应用不同,通常由不同的设计人员进行局部维度模型设计,因此,各局部维度模型不可避免地会有许多不一致的的地方,我们称之为冲突。合并局部维度模型时并不能简单地将各个维度图画到一起,而必须消除各个局部维度模型中的不一致,使合并后的全局概念结构不仅支持所有的局部概念模型,而且必须是一个能为全系统中所有用户共同理解和接受的完整的概念模型。合并局部维度模型的关键就是合理消除各局部维度模型中的冲突。维度模型中的冲突有三种:属性冲突、命名冲突和结构冲突。①属性冲突属性冲突又分为属性值域冲突和属性的取值单位冲突。a.属性值域冲突,即属性值的类型、取值范围或取值集合不同。比如学号,有些部门将其定义为数值型,而有些部门将其定义为字符型。又如年龄,有的可能用出生年月表示,有的则用整数表示。b.属性的取值单位冲突。比如课程的时长,有的以分钟为单位,有的以小时为单位。属性冲突属于用户业务上的约定,必须与用户协商后解决。②命名冲突命名不一致可能发生在事实名、属性名或联系名之间,其中属性的命名冲突更为常见。一般表现为同名异义或异名同义(事实、属性、联系名)。a.同名异义,即同一名字的对象在不同的部门中具有不同的意义。比如,“单位”在某些部门表示为人员所在的部门,而在某些部门可能表示物品的重量、长度等属性。b.异名同义,即同一意义的对象在不同的部门中具有不同的名称。比如,对于“课程”这个名称,在教务管理部门中对应着为课程,而在学生管理部门对应为科目。命名冲突的解决方法同属性冲突,需要与各部门协商、讨论后加以解决。③结构冲突a.同一对象在不同应用中有不同的抽象,可能为事实,也可能为维度。例如,教师的职称在某一局部应用中被当作维度,而在另一局部应用中被当作属性。这类冲突在解决时,就是使同一对象在不同应用中具有相同的抽象,或把维度转换为属性,或把属性转换为维度。但都要符合前述所介绍的准则。b.同一事实在不同应用中属性组成不同,可能是属性个数或属性次序不同。解决办法是,合并后事实的属性组成为各局部维度模型中的同名事实属性的并集,然后再适当调整属性的次序。c.同一联系在不同应用中呈现不同的类型。比如F1与F2在某一应用中可能是一对一联系,而在另一应用中可能是一对多或多对多联系,也可能是在F1、F2、F3三者之间有联系。这种情况应该根据应用的语义对事实联系的类型进行综合或调整。(2)消除不必要的冗余,生成基本概念模型所谓冗余,在这里指冗余的数据和事实之间冗余的联系。冗余的数据是指可由基本的数据导出的数据,冗余的联系是由其他的联系导出的联系。在上面消除冲突合并后得到的初步维度模型中,可能存在冗余的数据或冗余的联系。冗余的存在容易破坏数据的完整性,给数据的维护增加困难,应该消除。我们把消除了冗余的初步维度模型称为基本概念模型。通常采用分析的方法消除冗余。数据字典是分析冗余数据的依据,还可以通过数据流图分析出冗余的联系。最终得到的基本概念模型是企业的概念模型,它代表了用户的数据要求,是沟通“要求”和“设计”的桥梁。它决定大数据系统的总体逻辑结构,是成功建立大数据系统的关键。如果设计不好,就不能充分发挥大数据系统的功能,无法满足用户的处理要求。因此,用户和大数据人员必须对这一模型反复讨论,在用户确认这一模型已正确无误的反映了他们的要求后,才能进入下一阶段的设计工作。7.4逻辑结构设计概念结构设计阶段得到的维度模型是用户的模型,它独立于任何一种数据模型,独立于任何一个具体的大数据处理框架。为了建立用户所要求的大数据系统,需要把上述概念模型转换为某个具体的大数据处理框架所支持的数据模型。大数据逻辑设计的任务是将概念结构转换成特定大数据处理框架所支持的数据模型的过程。从此开始便进入了“实现设计”阶段,需要考虑到具体的大数据处理框架的性能、具体的数据模型特点。从维度模型所表示的概念模型可以转换成任何一种具体的大数据处理框架所支持的数据模型,如Hive模型、Spark模型等。这里只讨论基于Hive的数据仓库逻辑设计问题,所以只介绍维度模型如何向Hive关系模型进行转换。7.4.1维度模型向关系模型的转换1.转换原则概念设计中得到的维度模型是由事实、维度和联系组成的,而Hive数据仓库逻辑设计的结果是一组关系模式的集合。所以将维度模型转换为关系模型实际上就是将事实、维度和联系转换成关系模式。在转换中要遵循以下原则:一个维度转换为一个关系模式,维度的属性就是关系的属性,维度的键就是关系的键。(2)一个事实转换为一个关系模式,与该事实相连的各维度的键以及事实本身的属性均转换为该关系的属性。该关系的键为各维度键的组合。2.具体做法(1)把每一个维度转换为一个关系首先分析各维度的属性,从中确定其主键,然后分别用关系模式表示。例如,在线教育的维度模型中,四个维度分别转换成四个关系模式:学生(学号,姓名,性别,年龄)课程(课程号,课程名)教师(教师号,姓名,性别,职称)时间(日期,年,月,日,星期)(2)把每一个事实转换为关系模式由事实转换得到的关系模式的属性集中,包含两个发生联系的维度中的主键以及事实本身的属性,其关系键为各维度键的组合。例如,在线教育的维度模型中,学习事实也分别转换成关系模式:学习(学号,课程号,教师号,日期,学习时长,完成率)7.5大数据系统的物理设计大数据最终要存储在物理设备上。对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为大数据系统物理设计。物理设计的任务是为了有效地实现逻辑模式,确定所采取的存储策略。此阶段是以逻辑设计的结果作为输入,结合具体大数据处理框架的特点与存储设备特性进行设计,选定数据在物理设备上的存储结构和存取方法。大数据系统的物理设计可分为两步:(1)确定物理结构,在大数据系统中主要指存储格式、分区策略和索引设计;(2)评价物理结构,评价的重点是时间和空间效率。7.5.1确定物理结构设计人员必须深入了解给定的大数据处理框架的功能,大数据处理框架提供的环境和工具、硬件环境,特别是存储设备的特征。另一方面也要了解应用环境的具体要求,如各种应用的数据量、处理频率和响应时间等。只有“知己知彼”才能设计出较好的物理结构。7.5.2评价物理结构和前面几个设计阶段一样,在确定了大数据系统的物理结构之后,要进行评价,重点是时间和空间的效率。如果评价结果满足设计要求,则可进行大数据系统实施。实际上,往往需要经过反复测试才能优化物理设计。7.6大数据系统实施和维护大数据系统实施是指根据逻辑设计和物理设计的结果,在计算机上建立起实际的大数据系统结构、装入数据、进行测试和试运行的过程。大数据系统实施主要包括以下工作:建立实际大数据系统结构;装入数据;应用程序编码与调试;大数据系统试运行;整理文档。7.7存储过程和函数存储过程:由过程化SQL语句书写的过程,经编译和优化后存储在数据仓库服务器中,使用时只要调用即可。存储过程的优点(1)运行效率高(2)降低了客户机和服务器之间的通信量(3)方便实施企业规则(1)创建存储过程CREATEORREPLACEPROCEDURE过程名([参数1,参数2,...])AS<过程化SQL块>;(2)执行存储过程CALL/PERFORMPROCEDURE过程名([参数1,参数2,...]);(3)修改存储过程ALTERPROCEDURE过程名1RENAMETO过程名2;(4)删除存储过程DROPPROCEDURE过程名();函数和存储过程的异同同:都是持久性存储模块异:函数必须指定返回的类型八、作业第四次小组作业:小组讨论系统功能,共同画出系统的顶层和0层数据流图。由组长分配,以系统的模块为基本单位,1-2模块/人,将所有模块分配到人。每人画出分维度模型图,然后小组讨论绘制集成维度模型图。制作PPT,下次上课选取1-2组汇报,重点汇报个人成果。第五次小组作业:小组讨论集成维度模型图,根据维度模型向关系模型的转换原则,将维度模型转换成关系模型,并将所有转换后的关系模式优化到3NF。制作PPT,下次上课选取1-2组汇报,重点汇报个人成果。九、总结本章的主要内容有:大数据系统的设计过程:需求分析概念结构设计逻辑结构设计物理结构设计大数据系统实施大数据系统运行维护设计过程中往往还会有许多反复大数据系统各级模式的形成:需求分析阶段:综合各个用户的应用需求(现实世界的需求)。概念设计阶段:概念模式(信息世界模型),用维度模型来描述。逻辑设计阶段:逻辑模式、外模式。物理设计阶段:内模式。概念结构设计:维度模型的基本概念和图示方法维度模型的设计把维度模型转换为关系模型的方法在逻辑设计阶段将维度模型转换成具体的大数据产品支持的数据模型如关系模型,形成大数据系统逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式在物理设计阶段根据大数据处理框架特点和处理的需要,进行物理存储安排,设计分区和索引,形成大数据系统内模式。实验一Hadoop集群搭建与HDFS操作一、实验目的及要求了解Hadoop的架构和组件,掌握Hadoop集群的安装与配置方法。熟练使用HDFSShell命令进行文件和目录操作。能够使用JavaAPI进行HDFS文件的读写操作。二、实验内容及学时分配:2学时学会在Linux环境下搭建Hadoop伪分布式集群学会启动和关闭Hadoop集群熟练使用HDFSShell命令进行文件操作使用JavaAPI进行HDFS文件读写三、操作要点:1.启动Hadoop集群,并通过WebUI查看集群状态2.启动“新建查询”或终端3.掌握HDFSShell命令和JavaAPI的使用四、注意事项:1.使用单条Shell命令,其末尾不需要分号“;”作为命令结尾标记。2.Hadoop对大多数末尾带有分号的Shell命令都能顺利执行,但对少数的Shell命令,末尾若带分号,则Hadoop会给出错误信息提示。3.搭建集群时,注意配置文件的正确性,特别是NameNode地址和副本数量。五、实验学时:2学时六、实验重点及难点:1.Hadoop集群的安装与配置2.HDFSShell命令的使用3.HDFSJavaAPI编程七、实验步骤:Hadoop伪分布式集群搭建1.安装JDK并配置环境变量;2.下载并解压Hadoop安装包;3.配置Hadoop环境变量;4.修改Hadoop核心配置文件:core-site.xml、hdfs-site.xml;5.配置SSH免密登录;6.格式化NameNode:hdfsnamenode-format;7.启动HDFS集群:start-dfs.sh;8.通过WebUI访问http://localhost:50070,查看集群状态。HDFSShell操作1.创建目录:hdfsdfs-mkdir/test2.上传本地文件到HDFS:hdfsdfs-putlocal.txt/test3.查看HDFS文件内容:hdfsdfs-cat/test/local.txt4.下载HDFS文件到本地:hdfsdfs-get/test/local.txt5.删除HDFS文件:hdfsdfs-rm/test/local.txt6.递归删除HDFS目录:hdfsdfs-rm-r/testHDFSJavaAPI编程1.创建Maven项目,添加Hadoop依赖;2.编写Java程序,实现文件的上传和下载功能;3.打包并运行程序,验证结果。附加拓展题(必须完成):观察下面表格中的数据,结合下面的问题使用HDFS存储数据,然后回答:以下数据是否适合存储在HDFS中?如果存储,应该采用什么文件格式?如果不存储,为什么?用户ID用户名登录时间操作模块操作类型1001张三2023-01-0908:30:00课程中心浏览1002李四2023-01-0908:31:00个人中心修改信息1003王五2023-01-0908:32:00课程中心播放视频1004赵六2023-01-0908:33:00考试中心开始考试1005孙七2023-01-0908:34:00课程中心下载资料实验二MapReduce编程基础一、实验目的及要求:熟练掌握MapReduce程序的开发流程和运行方法,为后继学习作准备。二、实验任务:1.了解并掌握Hadoop开发环境的使用;2.掌握MapReduce程序的编写、打包和运行。三、操作要点:1.启动Hadoop集群2.掌握Mapper、Reducer和Driver的编写方法,命令关键词分别是map、reduce和run四、注意事项:1.注意每次运行MapReduce程序前,要删除输出目录,否则会报错。2.特别注意在编写Mapper和Reducer时,要保证键值对的类型匹配。3.提交作业时,确保输入路径存在,输出路径不存在。五、实验学时:2学时六、实验重点及难点1.MapReduce编程模型的理解和应用。2.Mapper和Reducer的编写。3.MapReduce作业的配置和提交。七、实验步骤:1.启动Hadoop集群;2.创建Maven项目,添加Hadoop依赖;3.编写WordCount程序:a.Mapper类:将每行文本拆分为单词,输出<单词,1>;b.Reducer类:对相同单词的计数进行求和,输出<单词,总次数>;c.Driver类:配置作业参数,设置输入输出路径,提交作业;4.打包项目成JAR文件;5.上传测试数据到HDFS:hdfsdfs-putinput.txt/input;6.运行MapReduce程序:hadoopjarwordcount.jarcom.example.WordCount/input/output;7.查看输出结果:hdfsdfs-cat/output/part-r-00000;8.按照同样的方法,开发数据去重和数据排序程序。附加拓展题:表1在线教育用户行为日志表格用户ID用户名登录时间操作模块操作类型时长1001张三2023-01-0908:30:00课程中心浏览1201002李四2023-01-0908:31:00个人中心修改信息601003王五2023-01-0908:32:00课程中心播放视频36001004赵六2023-01-0908:33:00考试中心开始考试18001005孙七2023-01-0908:34:00课程中心下载资料3002.1请根据以上表格,结合实验一拓展题,并参考教材中的实例,设计一个MapReduce程序,统计每个用户的总操作时长;2.2将表1的数据,上传到HDFS中;2.3运行MapReduce程序,统计每个用户的总操作时长;2.4修改程序,统计每个模块的总访问次数;2.5修改程序,统计每个操作类型的平均时长。实验三Hive数据仓库操作一、实验目的及要求熟练掌握Hive的安装与配置方法。掌握HiveQL数据定义和数据操纵语句的使用。掌握分区表的创建和使用方法。二、实验任务1.掌握Hive的安装与配置方法。2.掌握数据库、表的创建和管理方法。3.掌握HiveQL数据查询语句的使用。4.掌握分区表的创建和使用方法。三、操作要点1.进行Hive操作时先进入HiveCLI或Beeline2.了解HiveQL的基本语法和使用方法3.熟练掌握分区表的创建和查询方法四、注意事项HiveQL的基本语法格式HiveQL的执行方法分区表的作用和使用方法加载数据时,注意文件的分隔符和表的分隔符一致五、实验学时:2学时六、实验重点及难点1.Hive的安装与配置2.HiveQL数据定义和数据操纵语句3.分区表的创建和使用七、实验步骤1.安装和配置Hive:a.下载并解压Hive安装包;b.配置Hive环境变量;c.修改hive-site.xml,配置MySQL元数据存储;d.下载MySQLJDBC驱动,复制到Hive的lib目录;e.在MySQL中创建Hive元数据数据库;f.初始化Hive元数据:schematool-dbTypemysql-initSchema;2.启动HiveCLI:hive;3.创建数据库:CREATEDATABASEonline_education;4.使用数据库:USEonline_education;5.创建学生表:CREATETABLEstudent(idINT,nameSTRING,ageINT,departmentSTRING)ROWFORMATDELIMITEDFIELDSTERMINATEDBY',';6.加载数据:LOADDATALOCALINPATH'stude
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险化学品泄漏事故应急处置方案
- 农产品市场营销渠道拓展策略方案
- 客户流失原因分析改进方案
- 足疗按摩服务标准流程
- 受限空间作业事故处置规程
- 仔猪早期断奶培育管理规范
- 职业病危害因素检测与评价规范
- 水产池塘水质在线监测预警方案
- 理疗仪器设备使用规范
- 植保无人机植保作业技术规范
- 幼儿园游戏观察与介入
- 小学奥数几何模块-等高模型、等积变形、一半模型
- 19.SL-T19-2023水利基本建设项目竣工财务决算编制规程
- 排水管网清淤疏通方案(技术方案)
- 计算机辅助项目管理课程设计
- 年产2亿片的萘普生的车间设计
- 费马点练习题
- 新修水库施工方案
- JJF 1903-2021冲击响应谱试验机校准规范
- GB/T 12060.5-2011声系统设备第5部分:扬声器主要性能测试方法
- GESE3英国圣三一口语考试3级准备资料【精选】
评论
0/150
提交评论