论文部分内容阅读
[摘 要] 继物联网、云计算后,大数据技术的发展与应用,将对企业的决策模式、商业的经营策略以及个人的生活方式等产生深刻的影响。所以大数据也必然会对高校各个学科和专业产生冲击,促使其进行变革。通过对大数据时代给计算机类课程带来的影响进行深入分析,对其课程体系的建设进行探索。
[关 键 词] 课程体系;大数据;Hadoop
[中图分类号] G642 [文献标志码] A [文章編号] 2096-0603(2018)25-0032-02
大数据从表面上来看强调的是数据本身的容量,其实它的内涵是如何运用大数据技术实现大数据具体应用。
从数据本身角度而言,大数据是指超出一般典型数据管理系统的采集、存储、管理和分析等能力的大规模数据集,而且这些数据之间存在着显性或隐性的关联。而大数据技术是以数据挖掘的方式寻找隐藏在复杂的数据集中未被发现的模式、规则与知识,从而得到有价值的新信息。在技能的获取阶段,大数据技术相对数据而言就显得至关重要,所以在高等学校教学中如何学习大数据技术就成为高校相关专业课程体系设置的重点。
一、教学内容的侧重与优化
大数据技术的深入理解与并行计算、分布式计算等算法是密切相关的。通常情况下,原有的计算机科学与技术的算法类课程开设有必修课程算法设计与分析、选修课程人工智能等。算法主要包括递归与迭代、分治算法、动态规划、贪心算法、图算法、网络流和匹配、线性规划、NP完全理论、回溯、分支限界等。在人工智能课程中主要学习人工神经网络、贝叶斯、决策树算法、深度学习、迁移学习算法等。这些算法在数据挖掘的过程中得到广泛应用,但对于提高学生对大数据技术原理的理解相关甚少。这就需要在课程体系中引入分布式系统理论的课程。
而分布式系统理论体系内容多,涉及知识面也非常广,如何在有限的课时中把它讲解得透彻就显得至关重要。这就要以广泛、简单有效的分布式理论、算法、协议为基础逐步深入理解大数据的技术基础。
(一)强化大数据基础教学内容
1.分布式系统模型
正常状态下节点、通信、存储的含义很容易理解,而在机器宕机、消息丢失、消息乱序、数据错误、不可靠的TCP问题等方面深入较少。正是由于网络异常的存在,分布式系统把请求结果分为三个状态——“成功”“失败”“超时”。超时的状态是指在规定时间内,没有返回结果,即成功还是失败的结果是未知的中间状态。
分布式系统对待“超时”状态的一般操作是:当出现“超时”时,通过发起读取数据的操作验证远程操作是否成功。另外一种做法是,当出现“失败”和“超时”的时候,一律重试操作直到“成功”。即使超时的操作实际上已经执行成功,重试操作也不会对其正确性造成影响,从而简化了设计。
2.副本
副本指在分布式系统中为数据或服务提供的冗余。数据副本在分布式系统中存储数据丢失,也意味着状态丢失,那么只能从其他节点读取副本、恢复存储的状态。而另一类是服务副本,是指数个节点提供某种相同的服务。常见的分布式系统中,HDFS系统的数据块(Block)的副本就是数据副本,而Map Reduce系统中的Job Worker则是服务副本。
3.数据分布方式
常见的数据分布方式有哈希方式、按数据范围或数据量分布以及一致性哈希等。分布式文件系统(HDFS)采用按数据量分布,它将数据看作顺序增长的文件按照固定的大小划分为若干个数据块(Block),再将不同的数据块分布到不同的服务器上。Map Reduce则是数据分布本地化。分布式数据库(HBase)之所以采用按数据范围分布,是为了数据迁移等负载均衡操作的便利性,使每个区间中服务的数据量都维持在一个固定的阈值之下。它的缺点是需要维护较复杂的元信息。随着集群规模的增长,元数据服务器容易成为瓶颈。
4.基本副本协议
HDFS系统的副本控制协议是primary-secondary协议,在此协议中,有且仅有一个副本作为primary副本,其余副本都作为secondary副本。由primary节点接收外部节点的更新操作,确定并发更新操作的先后顺序,然后转发操作到secondary节点,数据在副本间流式传递,最后primary节点将执行结果返回给外部节点。
5.lease机制
lease机制用于确定节点状态,HDFS中使用Lease确定数据的Primary副本,用于Primary副本的确定与切换。Lease类似于短期租约权限由Master节点颁发给primary副本,持有Lease的副本就成为primary副本。HDFS中的Lease信息由Master在响应各个节点的心跳(HeartBeat)时附带传递。当HDFS的Master失去某个节点的心跳时,要为这些Block重新选择primary副本并颁发lease,只要待该节点上的Lease权限超时即可。
6.Quorum机制
Quorum机制是一种副本管理机制,HDFS使用WARO(Write-all-read-one)机制读写副本,当更新所有副本成功保证了副本的同步,就可以任意选择一个副本来读取数据;如果更新失败,副本之间处于不一致的状态。HDFS与Zookeeper不保证异常状态时副本的一致性,当更新操作某个Block的副本失败时,系统就会自动新增一个Block在正常的机器上进行更新操作,这从侧面解决了使用WARO造成的系统可用性下降的问题。虽然在新增的更新操作中数据可能会出现多份重复的现象,但操作会返回用户最后成功的offset,在这个地址,任意读取某个副本就可以读到更新的数据。 课程体系中,传统的算法课程教学即算法设计与分析可以采用现行的教学大纲,在大二上学期开设,注重实践和代码编程实现,课时设置为32学时理论+16学时实验。作为大数据的先行课程并行与分布式系统在大二下学期开设,学时为32学时。课程教学中应强调上述分布式系统基础理论包括算法的学习,并结合大数据相关技术的应用而有所侧重,并对Paxos算法、一致性算法等常用分布式算法进行讲解,以此作为面向大数据的算法课程体系的基础。
(二)深化大数据系统理论
建议在大三上学期开设大数据技术基础课程。大数据技术基础课程主要包括Hadoop系统理论,涵盖HDFS(分布式文件系统)、Yarn(资源管理系统)、Zookeeper(分布协作服务)、MapReduce(分布式计算框架)、Spark、Hive(数据仓库)、Flume(日志收集工具)。教学内容要精心组织,课程主要讲授Hadoop生态系统的知识,学时设置为32+16。课程主要内容包括:Hadoop分布式计算平台、MapReduce编程模型、BigTable数据管理工具、以HBase和Hive为代表的海量数据管理平台。由于教学学时相对于大数据所涵盖的内容来说较少,需要重点理解MapReduce过程和Shuffle过程。MapReduce的原理如图所示。
首先读取HDFS文件,按照输入格式将输入文件分割成片段(split),每个片段会作为一个map task输入。在Map(映射)阶段,调用map函数,按行读入数据生成映射,并进行分区(partition),然后对不同分区中的数据进行键值Key排序,中间结果写入内存缓冲区,在超过阀值后会将内存缓冲区中的数据溢写入磁盘,如果中间结果数据量大,会形成多个溢写文件,这些溢写文件最后会合并成一个文件;在Reduce(归约)阶段,多个map任务的输出,按照不同的分区通过网络copy到不同的reduce节点上,对多个输出进行合并、排序,最后reduce的输出写到HDFS中;中间环节即数据从map task输出到reduce task的这段过程为Shuffle过程,它主要负责数据的完整拉取,并尽量减少磁盘I/O对执行效率的影响,并减少对带宽的消耗。
理解了分布式文件系统的基本原理之后,实验部分可集中在HDFS、Hadoop、MapReduce、HBase和Hive技术方面设置一些简单的实践操作,如Hadoop环境的搭建、Hadoop数据读写过程、基础MapReduce示例、列式存储HBase数据库的数据查询练习、Hive数据仓库的使用等。
在教学过程中每个知识点通过几个简单小程序的编程与讲解可以达到更好的教学效果,例如WordCount计数、全排序、倒排序等程序设计可以帮助学生理解MapReduce和Shuffle的工作原理。
二、大数据技术实践
计算机专业应用型人才的培养,课程设计实习与项目实训是不可或缺的重要环节。在大三下学期第一周开始,开设了为期四周的大数据课程设计,该课程设计要求学生综合应用所掌握的Hadoop系统知识和相关算法,进行HBase和Hive实验项目的开发设计。例如WebContent搜索项目不仅检验了学生的Java编程语言、软件工程、NoSQL数据库等专业知识的综合运用,而且使学生掌握项目开发的实际操作流程,为学生进入社会实践打下了扎实的基础。
三、总结
本学院对大数据课程体系进行改革,强化了并行计算与分布式系统理论基础,并及时更新大数据相关理论及实践知识,有利于保持课程体系的先进性。另外,加大校企合作,建设创新实训基地是提高课程体系对接学生就业的有力保障。
参考文献:
[1]陈洁,张文翔.大数据视角下计算机科学与技术专业建设探究[J].软件导刊,2016(10).
[2]邹先霞,杜威.利用翻转课堂将大数据引入数据库课程的教学设计与实践[J].高教学刊,2016(10).
[3]岳昆,陈红梅,王丽珍.大数据時代本科数据库课程体系改革设想[J].计算机教育,2015(11).
[4]张华.大数据背景下独立学院数据库课程体系建设构想[J].重庆科技学院学报(社会科学版),2017(12).
[关 键 词] 课程体系;大数据;Hadoop
[中图分类号] G642 [文献标志码] A [文章編号] 2096-0603(2018)25-0032-02
大数据从表面上来看强调的是数据本身的容量,其实它的内涵是如何运用大数据技术实现大数据具体应用。
从数据本身角度而言,大数据是指超出一般典型数据管理系统的采集、存储、管理和分析等能力的大规模数据集,而且这些数据之间存在着显性或隐性的关联。而大数据技术是以数据挖掘的方式寻找隐藏在复杂的数据集中未被发现的模式、规则与知识,从而得到有价值的新信息。在技能的获取阶段,大数据技术相对数据而言就显得至关重要,所以在高等学校教学中如何学习大数据技术就成为高校相关专业课程体系设置的重点。
一、教学内容的侧重与优化
大数据技术的深入理解与并行计算、分布式计算等算法是密切相关的。通常情况下,原有的计算机科学与技术的算法类课程开设有必修课程算法设计与分析、选修课程人工智能等。算法主要包括递归与迭代、分治算法、动态规划、贪心算法、图算法、网络流和匹配、线性规划、NP完全理论、回溯、分支限界等。在人工智能课程中主要学习人工神经网络、贝叶斯、决策树算法、深度学习、迁移学习算法等。这些算法在数据挖掘的过程中得到广泛应用,但对于提高学生对大数据技术原理的理解相关甚少。这就需要在课程体系中引入分布式系统理论的课程。
而分布式系统理论体系内容多,涉及知识面也非常广,如何在有限的课时中把它讲解得透彻就显得至关重要。这就要以广泛、简单有效的分布式理论、算法、协议为基础逐步深入理解大数据的技术基础。
(一)强化大数据基础教学内容
1.分布式系统模型
正常状态下节点、通信、存储的含义很容易理解,而在机器宕机、消息丢失、消息乱序、数据错误、不可靠的TCP问题等方面深入较少。正是由于网络异常的存在,分布式系统把请求结果分为三个状态——“成功”“失败”“超时”。超时的状态是指在规定时间内,没有返回结果,即成功还是失败的结果是未知的中间状态。
分布式系统对待“超时”状态的一般操作是:当出现“超时”时,通过发起读取数据的操作验证远程操作是否成功。另外一种做法是,当出现“失败”和“超时”的时候,一律重试操作直到“成功”。即使超时的操作实际上已经执行成功,重试操作也不会对其正确性造成影响,从而简化了设计。
2.副本
副本指在分布式系统中为数据或服务提供的冗余。数据副本在分布式系统中存储数据丢失,也意味着状态丢失,那么只能从其他节点读取副本、恢复存储的状态。而另一类是服务副本,是指数个节点提供某种相同的服务。常见的分布式系统中,HDFS系统的数据块(Block)的副本就是数据副本,而Map Reduce系统中的Job Worker则是服务副本。
3.数据分布方式
常见的数据分布方式有哈希方式、按数据范围或数据量分布以及一致性哈希等。分布式文件系统(HDFS)采用按数据量分布,它将数据看作顺序增长的文件按照固定的大小划分为若干个数据块(Block),再将不同的数据块分布到不同的服务器上。Map Reduce则是数据分布本地化。分布式数据库(HBase)之所以采用按数据范围分布,是为了数据迁移等负载均衡操作的便利性,使每个区间中服务的数据量都维持在一个固定的阈值之下。它的缺点是需要维护较复杂的元信息。随着集群规模的增长,元数据服务器容易成为瓶颈。
4.基本副本协议
HDFS系统的副本控制协议是primary-secondary协议,在此协议中,有且仅有一个副本作为primary副本,其余副本都作为secondary副本。由primary节点接收外部节点的更新操作,确定并发更新操作的先后顺序,然后转发操作到secondary节点,数据在副本间流式传递,最后primary节点将执行结果返回给外部节点。
5.lease机制
lease机制用于确定节点状态,HDFS中使用Lease确定数据的Primary副本,用于Primary副本的确定与切换。Lease类似于短期租约权限由Master节点颁发给primary副本,持有Lease的副本就成为primary副本。HDFS中的Lease信息由Master在响应各个节点的心跳(HeartBeat)时附带传递。当HDFS的Master失去某个节点的心跳时,要为这些Block重新选择primary副本并颁发lease,只要待该节点上的Lease权限超时即可。
6.Quorum机制
Quorum机制是一种副本管理机制,HDFS使用WARO(Write-all-read-one)机制读写副本,当更新所有副本成功保证了副本的同步,就可以任意选择一个副本来读取数据;如果更新失败,副本之间处于不一致的状态。HDFS与Zookeeper不保证异常状态时副本的一致性,当更新操作某个Block的副本失败时,系统就会自动新增一个Block在正常的机器上进行更新操作,这从侧面解决了使用WARO造成的系统可用性下降的问题。虽然在新增的更新操作中数据可能会出现多份重复的现象,但操作会返回用户最后成功的offset,在这个地址,任意读取某个副本就可以读到更新的数据。 课程体系中,传统的算法课程教学即算法设计与分析可以采用现行的教学大纲,在大二上学期开设,注重实践和代码编程实现,课时设置为32学时理论+16学时实验。作为大数据的先行课程并行与分布式系统在大二下学期开设,学时为32学时。课程教学中应强调上述分布式系统基础理论包括算法的学习,并结合大数据相关技术的应用而有所侧重,并对Paxos算法、一致性算法等常用分布式算法进行讲解,以此作为面向大数据的算法课程体系的基础。
(二)深化大数据系统理论
建议在大三上学期开设大数据技术基础课程。大数据技术基础课程主要包括Hadoop系统理论,涵盖HDFS(分布式文件系统)、Yarn(资源管理系统)、Zookeeper(分布协作服务)、MapReduce(分布式计算框架)、Spark、Hive(数据仓库)、Flume(日志收集工具)。教学内容要精心组织,课程主要讲授Hadoop生态系统的知识,学时设置为32+16。课程主要内容包括:Hadoop分布式计算平台、MapReduce编程模型、BigTable数据管理工具、以HBase和Hive为代表的海量数据管理平台。由于教学学时相对于大数据所涵盖的内容来说较少,需要重点理解MapReduce过程和Shuffle过程。MapReduce的原理如图所示。
首先读取HDFS文件,按照输入格式将输入文件分割成片段(split),每个片段会作为一个map task输入。在Map(映射)阶段,调用map函数,按行读入数据生成映射,并进行分区(partition),然后对不同分区中的数据进行键值Key排序,中间结果写入内存缓冲区,在超过阀值后会将内存缓冲区中的数据溢写入磁盘,如果中间结果数据量大,会形成多个溢写文件,这些溢写文件最后会合并成一个文件;在Reduce(归约)阶段,多个map任务的输出,按照不同的分区通过网络copy到不同的reduce节点上,对多个输出进行合并、排序,最后reduce的输出写到HDFS中;中间环节即数据从map task输出到reduce task的这段过程为Shuffle过程,它主要负责数据的完整拉取,并尽量减少磁盘I/O对执行效率的影响,并减少对带宽的消耗。
理解了分布式文件系统的基本原理之后,实验部分可集中在HDFS、Hadoop、MapReduce、HBase和Hive技术方面设置一些简单的实践操作,如Hadoop环境的搭建、Hadoop数据读写过程、基础MapReduce示例、列式存储HBase数据库的数据查询练习、Hive数据仓库的使用等。
在教学过程中每个知识点通过几个简单小程序的编程与讲解可以达到更好的教学效果,例如WordCount计数、全排序、倒排序等程序设计可以帮助学生理解MapReduce和Shuffle的工作原理。
二、大数据技术实践
计算机专业应用型人才的培养,课程设计实习与项目实训是不可或缺的重要环节。在大三下学期第一周开始,开设了为期四周的大数据课程设计,该课程设计要求学生综合应用所掌握的Hadoop系统知识和相关算法,进行HBase和Hive实验项目的开发设计。例如WebContent搜索项目不仅检验了学生的Java编程语言、软件工程、NoSQL数据库等专业知识的综合运用,而且使学生掌握项目开发的实际操作流程,为学生进入社会实践打下了扎实的基础。
三、总结
本学院对大数据课程体系进行改革,强化了并行计算与分布式系统理论基础,并及时更新大数据相关理论及实践知识,有利于保持课程体系的先进性。另外,加大校企合作,建设创新实训基地是提高课程体系对接学生就业的有力保障。
参考文献:
[1]陈洁,张文翔.大数据视角下计算机科学与技术专业建设探究[J].软件导刊,2016(10).
[2]邹先霞,杜威.利用翻转课堂将大数据引入数据库课程的教学设计与实践[J].高教学刊,2016(10).
[3]岳昆,陈红梅,王丽珍.大数据時代本科数据库课程体系改革设想[J].计算机教育,2015(11).
[4]张华.大数据背景下独立学院数据库课程体系建设构想[J].重庆科技学院学报(社会科学版),2017(12).