职业教育
•案例研究•
基于“线下+线上”的大数据编程环境构建实践
蒋道霞,秦媛媛,何玉林
(江苏财经职业技术学院,江苏淮安223000)
摘要:针对职业院校大数据技术与应用新专业核心课程的教学需要,通过经典大数据单词统计MapReduce程序实例,釆用线下开发环境部署、程序调试和打包方法,利用华为大数据平台线上执行程序,为职业院校学生在疫情期间开展“线上+线下”居家学习提供有针对性的技能训练实践指导,经过反复实践,验证过程的可执行性。
关键词:“线下+线上”;大数据;编程环境;大数据平台
中图分类号:TP311文献标识码:B文章编号:2095-4530(2020)35-0066-03
大数据是一种规模大到在获取、存储、管理、分析方面大大超出传统数据库软件工具能力范围的数据集
合,是需要新处理模式,要求人们具有更强的决策力、洞察力和流程优化能力的、多样化的信息资产。目前,大数据技术已经应用于互联网、电信、金融、道路交通、购物、社交平台等领域。
近年来,随着大数据技术的飞速发展,大数据技术专业人才的缺口加大。职业院校承载着高素质技术技能型人才培养的重要任务,大数据技术与应用专业在各学校广泛开设。作为一个新兴专业,如何制订适合市场需要的人才培养方案,加强专业核心课程的教学改革,是各校特别重视的问题。
大数据的教学需求
核心课程是实施人才培养方案的重要载体。大数据原理与应用是大数据技术与应用专业的入门及专业核心课程,该课程的教学质量直接影响学生后续课程的专业技术基础掌握情况。基于“线下+线上”的大数据编程环境,包含两层含义。一是线下编程,然后线上执行,也就是说在本地构建编程的环境,程序编译经调试完成后,将其加载到大数据平台上执行。这一操作需要本地构建专业的软件开发环境,对学生进行软件安装、环境变量配置、依赖库加载、程序设计、代码录入调试等软件专业技能实训,再利用开源的Hadoop平台,选择商用的大数据产品,线上运算执行,最终得到程序运行的结果。二是开展线上授课和线上学习等在线教学活动,实现“停课不停教、停课不停学”。但对于实践操作性很强的专业课程,靠线上教学是远远不够的,应加强线下学生相关的实践训练操作,这就需要教师根据授课内容编制步骤完备、技术性强、可操作性强且容易独立完成的实验指导书。而针对Hadoop核心技术的学习,大量的编程训练是必不可少的。
二、大数据的教学现状
自2008年起,美国斯坦福大学把大数据技术设置为学生必学的现代科学技术课程之一。2017年,英国开放了关于交通运输、健康和天气等方面的公共数据库,并投资建立世界首个“开放数据研究所”。法国政府在发布《数字化路线图》时表示,将大力支持大数据等高新技术。同时,新加坡、澳大利亚和美国等国高校都开设了大数据课程。鉴于大数据成为各国的竞争力之一,我国于2016年发布的《2015年度普通高等学校本科专业备案和审批结果》,将数据科学与大数据技术专业列入专业体系建设计划,截至2018年,我国
收稿日期:2020-08-03
作者简介:蒋道霞,女,江苏财经职业技术学院教授,博士。研究方向:计算机网络、移动互联网、大数据技术、高职教育。课题项目:2019年江苏省大学生实践创新项目(201913753020Y)。
66
2020年12月第19卷第35期Dec.2020Vol.19No.35
已有248所高校开设了大数据专业。
三、大数据编程教学的相关技术
maven打包本地jar包(—)Java与Hadoop的关系
大数据行业的标准Hadoop,是一个开源的可运行于大规模集上的分布式文件系统和运行处理基础框架,擅长于在廉价机器搭建的集上进行海量数据(结构化与非结构化)的存储与离线处理
Doug Cutting是Hadoop的创始人,同时是基于Java的检索引擎库Apache Lucene的创始人。Hadoop 最初用于开源搜索引擎Apache Nutch,而Apache Nutch 本身是基于Lucene的一个子项目。因此Hadoop是基于Java编写的叫要实现大数据编程,首先要安装Java o
(二)Scala与Spark的关系
Hadoop是分布式管理、存储、计算的生态系统,包括HDFS(存储)、MapReduce(计算)、Yam(资源调度),虽然Hadoop已成为大数据技术的标准,但其本身还存在许多缺陷,如MapReduce计算模型延时较长,无法满足实时、快速计算的需求,只适用于离线批处理的应用场景⑴。Spark是一种分布式计算平台,在借鉴Hadoop MapReduce的同时,很好地弥补了其存在的不足,提供编程模型更灵活的多种数据集操作类型,已经很好地融入了Hadoop生态圈。
Spark是用Scala语言编写的计算框架,是基于内存的快速、通用、可扩展的大数据分析引擎〔役Scala 是一门现代的多范式编程语言,集成了面向对象和函数式语言的特性,以简练、优雅的方式来表达常
用编程模式,具有可扩展性,运行于JVM(Java虚拟机)上,兼容现有的Java o要开发Spark应用程序,必须安装Scala0
(三)Maven工具
Maven是一个项目管理工具,它统一了开发规范与工具,并统一管理jar包问。Maven内置了开发流程的支持,对依赖关系的特性进行细致的分析和划分,能够完成编译、测试、打包、集成测试、验证、部署、发布等所有步骤。Maven支持多种应用程序类型,对于每一种支持的应用程序类型都定义好了一组构建规则和工具集。Maven可以针对不同的开发场景,输出不同种类的输出结果问。
Maven的配置文件l,存放在两个位置:一个是主配置文件,在Maven安装目录的conf目录下,对所有使用该Maven的用户都起作用;另外一个放在%USERPROFILE%/.l下,称为用户配置文件,只对当前用户有效,且可以覆盖主配置文件的参数内容。settings文件配置的是诸如repository库路径之类的全局信息,具体可以参考。
Maven还有一个项目对象模型POM(Project Object Model)文件l,用于管理源代码、配置文件、开发者的信息和角、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等叫必要时用户可以在POM中写一些配置,覆盖配置文件和用户配置文件的参数内容。
(四)Scala IDE for Eclipse集成开发环境
Eclipse是基于Java的开放源代码可扩展开发平台,最初由IBM公司开发。它是一个框架和一组服务,用于通过插件组件构建开发环境,并附带标准插件集,支持诸如Java,C/C++、Scala、Python,Android等编程语言。
Scala IDE支持在Eclipse平台上开发Scala应用程序,支持Scala语言以及与Eclipse Java工具的集成,支持Scala/Java混合项目和Scala/Java项目依赖项的任何组合等Eclipse用户所期望的特性。
为了实现Spark功能,需要创设Scala IDE for Eclipse集成开发环境。
四、大数据编程教学环境的构建
下面以经典的单词统计WordCount为例,构建Hadoop中MapReduce计算框架的编程环境及程序运行过程。依靠本地环境(线下)和华为Fusioninsight大数据平台环境(线上),先在本地搭建线下编程环境,创建Maven项目,编写相应代码,再将Maven项目打一个可执行jar包,上传到Fusioninsight大数据平台上进行操作。步骤如下图所示。
按照步骤完成线下的程序调试、编译和打包工作,然后上传到华为大数据实验平台线上执行。
(_)将jar包上传到华为大数据实验平台
打开华为大数据实验平台(已部署好),点击“上传文件”,选择本地两个文件—
—MRWC.jar和“只⑷。jar-with-dependencies.jar,上传成功后,可通过旁边的
67
职业教育■I•案例研究•
线下编程线下子配置线上执行
基于“线下+线上”的大数据编程环境构建流程图
“历史纪录”査看文件的HDFS路径,单击“复制”,可将文件的路径复制下来备用。
(二)将上传到大数据平台上的jar包下载到Linux系统中
hdfs dfs-get<MRWC.jar文件路径>
hdfs dfs-get<MRWC-jar-with-dependencies.jar文件路径〉
验证复制的文件是否已经下载到本地,执行命令:
Is
(三)编辑需要统计单词数的数据文件,并上传
到hdfs路径
vi MR data
按i进入编辑模式,录入文件内容,保存退出。
将保存好的文件上传到HDFS路径:
hdfs dfs-mkdir/stu lisi
hdfs dfs-put MR data/stu_lisi
(四)线上执行程序
命令如下:
yam jar./MRWC.jar com.huawei.bigdata.mapreduce. examples.WordCountApp/stu lisi/MR data/stu lisi/ MRout
MR输出结果在/stu lisi/MR out路径下面,会生成一个结果文件part-r-OOOOO,用以下命令查看运行结果:hdfs dfs-Is/stu lisi/MR out
五、结语
本文从常用的大数据编程技术入手,通过大数据技术的一个典型应用案例单词统计的MapReduce项目MRWC,介绍了大数据编程环境中的Java、Scala, Maven、Eclipse的安装过程和环境配置,新建Maven 项目过程中模型和原型插件选择、Scala库版本配置,Maven项目对象模型l文件配置等技术,在本地构建线下大数据程序调试环境,最后利用华为大数据平台线上执行项目程序。因大数据编程环境部署过程烦琐、专业性强,笔者经过反复实践,已验证了过程的可执行性。
参考文献
[1]lijing iri.Apache Hadoop[EB/OL].(2018T0T7)[2020P4-02]. https://baike.so/doc/5381608_5617944.html.
[2]xiao_fu_ying.Java和Hadoop的关系[EB/OL].(2013-07-01) [2020~0403].https://w ww.csdn/gather_23/MtTaYgys Mzc2OClibG9n.htmL
[3]林子雨.大数据技术原理与应用[M].北京:人民邮电岀版社,2019.
[4]Kevin.Spark和Hadoop的区别和比较[EB/OL].(2019-01-23) [2020^04-03].https://blog.csdn/wxl528159409/article/ details/86612211.
[5]黄勇.Maven那点事儿[EB/OL].(20140120)[2020-04-03], http://my.oschina/huangyong/blog/194583?fromerr=Dmf7 HPwX.
[6]彩贝.Maven之l配置文件详解[EB/OL].(2018-03-04) [2020-04-03]https://blog,csdn/qq_33363618/article/ details/79438044.
[7]Alan_l详解[EB/OL].(2018T0-08)[2020-04-03]・https://blog.csdn/ckc_666/article/details/82965150.
68
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论