APP下载

“大数据技术”实验教学环境构建研究

2019-11-28张玉军

实验技术与管理 2019年11期
关键词:环境变量配置文件大数据技术

杨 丹,姜 华,张玉军,赵 骥

“大数据技术”实验教学环境构建研究

杨 丹,姜 华,张玉军,赵 骥

(辽宁科技大学 计算机与软件工程学院,辽宁 鞍山 114051)

该文研究了大数据技术课程实验教学环境的构建。在综合考虑已有实验设备和各种影响因素的条件下,提出在Linux虚拟机下安装Hadoop集群,并安装用Scala编程语言编写的Spark计算框架,从而实现Hadoop+Spark的大数据技术实验教学环境构建方案。该实验环境有助于提升大数据技术课程的理论教学效果,有助于学生更好地掌握分析和处理大数据的关键技术,从而有助于达到培养创新型人才的目标。

大数据技术;Linux;实验教学;Hadoop;Spark

近年来,大数据[1-4]的应用遍布各领域、各行业,大数据技术快速发展,国内外高校计算机专业相继开设了大数据相关课程,我校计算机与软件工程学院将其作为本科生专业选修课。但是作为新兴技术和学科方向,缺少相应的实验教学环境和平台。本文综合考虑搭建成本、实验室已有设备和系统环境,以及学生的接受能力等,提出了在Linux虚拟机下安装Hadoop[5-9]集群的搭建方案,但由于Hadoop的MapReduce[10-11]在运算时,需要将中间产生的数据存储在硬盘中,磁盘的输入和输出往往成为性能上的瓶颈,造成读写数据延迟问题,因此安装了基于内存的Spark[12-14]计算框架,大幅提高了运算性能。通过搭建Hadoop+Spark的大数据技术实验教学环境,能够很好地解决学生理论学习与实践脱节的问题,并大大降低了学生学习大数据技术的门槛。

1 Linux系统下的Hadoop环境搭建

由于本学院现有的实验室主机均为Windows操作系统,而Hadoop主要是在Linux操作系统环境下运行。而Ubuntu是Linux操作系统众多版本中的一种,所以先下载安装Ubuntu来提供Linux系统环境(如果电脑操作系统为Linux,则无需进行下面1.1节的配置),而后再搭建Hadoop环境。本节提供2种Hadoop安装方式,分别是Hadoop单节点安装和多节点的集群安装方式,单节点方式在运算时无法达到多节点并行运算时的速度,读者可根据实际情况自行选择安装方式。

1.1 下载安装Ubuntu操作系统的光盘软件

主要包括以下步骤:

(1)打开浏览器输入 Ubuntu 的官网下载地址http://www.ubuntu.com/download/alternative_downloads,保存在计算机的某个目录下;

(2)在虚拟机中导入下载文件;

(3)输入用户名、密码,启动Ubuntu。

1.2 Hadoop单节点安装

单节点Hadoop环境的安装步骤如下:

(1)安装JDK,使用命令首先查看Java版本,然后连接到APT Server接口,并更新软件包,使用命令sudo apt-get install default-jdk安装JDK;

(2)设置SSH管理节点用于管理计算节点,使用命令sudo apt-get install ssh 安装SSH;

(3)下载安装Hadoop,设置Hadoop环境变量,编辑/.~bashrc将环境变量写到该文件中,每次登录无须重复设置环境变量,环境变量设置如图1所示;

图1 配置Hadoop的安装与环境变量

(4)修改Hadoop配置文件,添加命令export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64,分别修改core-site.xml文件、yarn-site.xml文件、mapred-site. xml文件、hdfs-site.xm文件如图2所示;

图2 修改Hadoop配置文件

(5)使用命令start-all.sh启动Hadoop中的HDFS和YARN。

1.3 Hadoop集群安装

Hadoop集群架构示意图如图3所示。

图3 Hadoop集群架构示意图

Hadoop集群安装需要至少4台实体服务器,才能发挥其并行处理的优势。但考虑学院的实验室环境,为了方便大家实机演练,通过创建虚拟机master、data1、data2、data3予以解决。虽然一台主机无法实现并行计算,但配置方法可以完全应用于创建实体主机集群。由于配置data1、data2和data3的操作基本相同,下面只介绍data1的配置操作。

Hadoop安装步骤如下:

(1)复制1.2节所创建的单节点Hadoop创建data1;

(2)配置data1的网卡和主机名,配置网卡使用命令sudo gedit /etc/network/interfaces,配置主机名使用命令sudo gedit /etc/hostname hosts,配置各节点主机名与对应的IP使用命令sudo gedit /etc/hosts;

(3)分别修改配置文件core-site.xml、yarn- site.xml、mapred-site.xml和 hdfs-site.xml,其中core- site.xml和hdfs-site.xml配置与图2(a)和图2(d)相同,mapred-site.xml、yarn-site.xml的配置如图4所示;

(4)使用命令sudo init 0重新启动后,查看data1的网络配置是否成功,如果有eth0和eth1网卡同时出现,表示网络配置成功,同时可看到内部网络为172.16.100.101;

(5)复制data1服务器到data2、data3和master节点,data2和data3操作步骤与data1操作相同;

(6)master节点使用SSH连接到data1,检测 data1是否成功,启动HDFS和MapReduce。

图4 mapred-site.xml和yarn-site.xml配置文件

1.4 Hadoop的样例程序执行测试

以Hadoop自带的经典计算单词数量的任务WordCount为测试程序。具体测试步骤如下:

(1)编辑WordCount.java;

(2)编译并打包WordCound.java程序;

(3)使用Hadoop目录下的LICENSE.txt文件作为测试文件,并上传文本文件至HDFS;

(4)在Hadoop环境下运行WordCount;

(5)输出文件并存储到HDFS中,可使用HDFS命令查看每个单词出现的数量。

2 Spark安装与测试

2.1 下载并安装Scala和Spark

Spark可实现数据在内存中存储,并可对数据进行重复利用。Spark支持Scala、Java、Python等语言,由于是由Scala语言开发,所以安装Spark前应先安装Scala。安装步骤如下:

(1)下载Scala文件并解压,将Scala移动到/usr/local目录下,设置Scala用户环境变量,使用以下2条命令export SCALA_HOME=/usr/local/scala、export PATH=$PATH:${SCALA_HOME}/bin,并使用source ~/.bashrc命令让环境变量生效;

(2)下载Spark并解压,保存到目录/usr/local/ spark,然后设置Spark用户环境变量,使用命令export SCALA_HOME=/usr/local/spark和export PATH=$PATH: $SPARK_HOME/bin,使环境变量生效,并启动spark-shell交互界面;

(3)设置saprk-shell显示信息,将log4j. rootCategory原本的INFO信息改为WARN,用于提示错误或警告信息。

2.2 本地运行spark-shell程序

运行程序步骤如下:

(1)使用命令start-all.sh启动Hadoop;

(2)使用命令spark-shell --master local[4],local[N]表示本地运行且使用N个线程;

(3)读取本地文件README.md,并列出数据记录数;

(4)读取HDFS文件LICENSE.txt,并列出数据记录数。

2.3 构建Spark Standalone集群执行环境

Spark的模式架构如图5所示。其中,Driver Program是程序员设计的Spark程序,每个程序必须定义SparkContext,它是开发Spark应用程序的入口。Cluster Manager管理整个集群,集群中包含多个Worker Node,每个Worker Node都由Executor负责执行任务。

图5 Spark的集群模式结构图

Spark Standalone集群执行环境构建步骤如下:

(1)Spark系统中提供了环境变量的模板文件,复制该模板文件创建Spark-env.sh,设置环境配置文件spark-env.sh的IP为master,设置每个Worker使用的CPU核心和内存的大小以及每个Worker的实例数量;

(2)将master的spark复制到data1,首先,使用SSH连接至data1,连接成功后创建spark目录,更改所有者为hduser,使用命令sudo scp -r /usr/local/spark/ hduser@data1:/usr/local;

(3)将master的spark复制到data2和data3,操作步骤同(2);

(4)配置slave文件,使Spark Standalone Cluser所拥有的服务器为data1、data2和data3。

2.4 在Spark Standalone运行spark-shell

在Spark集群中运行spark-shell的执行步骤如下:

(1)启动master和salves节点,使用命令/usr/local/spark/sbin/start-all.sh,再使用命令$spark- shell --master spark://master:7077运行spark-shell程序;

(2)使用Spark Standalone Web UI界面,查看启动的worker与当前spark-shell的状态。

3 结语

针对“大数据技术”课程实验教学的特点与学生培养目标,研究Linux系统下Hadoop+Spark教学实验环境的搭建。使学生通过该项实践教学,加深对大数据技术理论知识的理解和掌握,使学生能够实现从感性认识到动手实践开发的跃升,避免纸上谈兵,达到提高教学效果、培养学生工程实践能力的目的。

[1] 吕立昌. 大数据技术在计算机信息安全中的应用[J]. 电子技术与软件工程,2019(15): 181–182.

[2] 原建伟,何玉辉,丁洁. 大数据实验云平台的设计与实现[J]. 信息技术,2018(2): 68–71.

[3] 韦程馨. 基于云计算的云数据管理技术[J]. 电子技术与软件工程,2019(5): 145.

[4] 陈磊,吴晓晖. 基于Hadoop的分布式集群大数据动态存储系统设计[J]. 中国电子科学研究院学报,2019,14(6): 593–598.

[5] 夏靖波,韦泽鲲,付凯,等. 云计算中Hadoop技术研究与应用综述[J]. 计算机科学,2016, 43(11): 6–11, 48.

[6] 张逸然,陈龙,安向哲,等. 面向GPU计算平台的归约算法的性能优化研究[J]. 计算机科学,2019, 46(2): 306–314.

[7] 何冲. Hadoop集群调度优化的研究[D]. 上海:上海师范大学,2015.

[8] 王成,闫红. 基于Hadoop技术的电信大数据平台设计[J]. 电子技术与软件工程,2019(15): 132–133.

[9] 李秋虹. 基于MapReduce的大规模数据挖掘技术研究[D]. 上海: 复旦大学,2013.

[10] 米允龙,李金海,刘文奇,等. MapReduce框架下的粒概念认知学习系统研究[J]. 电子学报,2018,46(2): 289–297.

[11] 李港,刘玉程. Hadoop的两大核心技术HDFS和MapReduce[J]. 电子技术与软件工程,2018(7): 180.

[12] 卞琛,于炯,修位蓉,等. Spark框架并行度推断算法[J]. 电子科技大学学报,2019, 48(4): 567–574.

[13] 陈佳. 基于Spark的闭合序列模式手机病毒挖掘系统的设计与实现[D]. 北京: 北京邮电大学,2019.

[14] 田璐,齐林海,李青,等. 基于Spark Streaming的电力流式大数据分析架构及应用[J]. 电力信息与通信技术,2019, 17(2): 23–29.

Research on construction of experimental teaching environment for “Big data technology”

YANG Dan, JIANG Hua, ZHANG Yujun, ZHAO Ji

(School of Computer and Software Engineering, University of Science and Technology Liaoning, Anshan 114051, China)

The construction of experimental teaching environment is studied for the Big Data Technology course. Considering the existing experimental equipment and various influencing factors, this paper proposes to install Hadoop cluster under Linux virtual machine and Spark computing framework written in Scala programming language, realizing the construction of Hadoop+Spark experimental teaching environment for the big data technology. This experimental environment is helpful to improve the theoretical teaching effect of the Big Data Technology course, which helps students to better grasp the key technology of analyzing and processing big data and has achieved the goal of training innovative talents.

big data technology; Linux; experimental teaching; Hadoop; Spark

G642.423

A

1002-4956(2019)11-0193-04

10.16791/j.cnki.sjg.2019.11.047

2019-08-18

教育部“数启科教 智见未来”产教联合基金项目(2017B00007);教育部产学合作协同育人项目(201702124017,201702124008);辽宁省创新创业教育改革试点专业项目(辽教函[2017]838号);辽宁省普通本科高等学校向应用型转变示范专业项目(辽教函[2017]779号);辽宁省普通高等教育本科教学改革研究项目(辽教函[2018]471号);辽宁科技大学研究生教育改革与创新项目(2016YJSCX20)

杨丹(1978—),女,辽宁鞍山,博士,副教授,研究方向为分布式计算、大数据管理等。E-mail: asyangdan@163.com

猜你喜欢

环境变量配置文件大数据技术
从Windows 10中删除所有网络配置文件
从桌面右键菜单调用环境变量选项
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
彻底弄懂Windows 10环境变量
基于Zookeeper的配置管理中心设计与实现
大数据技术在电气工程中的应用探讨
大数据技术在商业银行中的应用分析
基于三阶段DEA—Malmquist模型的中国省域城镇化效率测度及其收敛分析
基于权变管理理论的科技期刊管理模式研究