大数据平台技术—实验3(2019-2020)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学信息科学与工程学院实验报告
班级:曙光1701班
姓名学号:
实验项目名称:分布式数据计算技术实验
实验项目性质:设计性
实验所属课程:大数据平台技术
实验室(中心):语音楼11楼
指导教师:
实验完成时间:2019 年11 月14 日
一、实验概述:
【实验目的】
1.掌握Spark计算模型及其编程环境的安装部署和基本使用方法;
2.掌握Spark RDD模型体系下的常用Transformation和Action算子程序设计方法;
3.掌握Spark SQL和Spark Streaming的基本数据计算方法。
【实验要求】
1.保存程序,并自行存档;
2.最终的程序都必须经过测试,验证是正确的;
3.认真记录实验过程及结果,回答实验报告中的问题。
【实施环境】(使用的材料、设备、软件)
Linux操作系统环境,VirtualBox虚拟机,Spark、Python/Scala程序设计环境等。二、实验内容
第1题Spark计算环境的安装与配置实验
【实验内容】
请结合课堂讲授内容,在实验电脑的Linux环境下安装Spark计算环境,具体包含以下内容,并对安装步骤进行详细描述和记录。
(1)安装Python 3.x和Pip3工具;
(2)安装Spark计算模型;
(3)安装Jupyter Notebook编程工具;
(4)安装FindSpark工具包;
(5)对pyspark的import情况进行示例。
【实验过程】(步骤、记录、数据、程序等)
请提供相应Shell操作命令或相应界面截图证明。
(1)安装Anaconda3.7软件包含Python3.7和jupyter Notebook;
bash ~/下载/Anaconda3-2019.10-Linux-x86_64.sh
中间有两次选择,直接都选择yes:
source ~/.bashrc
到这里可以试一下我们的python安装好没有:
到此安装完成。
(2)安装Spark计算模型;
选择适合你hadoop版本的:
解压:
sudo tar -zxf ~/下载/spark-3.0.0-preview-bin-hadoop3.2.tgz -C /usr/local
重命名:
sudo mv ./spark-3.0.0-preview-bin-hadoop3.2 ./spark
sudo chown -R yqy:yqy ./spark
修改配置文件,添加环境变量:
cd ./spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh gedit ./conf/spark-env.sh
测试:
bin/run-example SparkPi 2>&1 | grep "Pi is roughly" ./bin/spark-shell
(3)安装Jupyter Notebook编程工具;
因为前面我们时安装了Anaconda,Anaconda本身自带jupyter notebook,所以我们打开终端,执行下命令:
Jupyter notebook
就在浏览器中打开了jupyter notebook
(4)安装FindSpark工具包;
pip install findspark
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
(5)对pyspark的import情况进行示例。
/bin/hdfs dfs -put /home/yqy/testInputFile.text /user/yqy
第2题Spark RDD的Transformation和Action算子程序设计实验
【实验内容】
请结合课堂讲授内容,在基于Python语言的Spark计算环境下,设计实现以下功能,并对代码和程序运行结果进行详细描述。
(1)从Linux本地磁盘或者HDFS文件系统中,读取任意一个包含了若干英文单词的文本文件,并将其载入为RDD对象,调用适宜的Spark Transformation和Action 算子,完成WordCount程序,并显示运行结果;
(2)初始化List对象input_data = [3, 4, 5, 7, 9, 12],调用适宜的Spark Transformation 算子,过滤掉其中小于5的元素,然后对过滤后的数据生成形式为(x, x)的元组,并调用适宜的Action算子将结果输出到Linux本地或HDFS文件系统中;
(3)初始化一个RDD对象,并赋值为range(1, 10)的集合,仅选择适宜的Action 算子,完成集合中元素数据值的累加,并将结果print输出。
【实验过程】(步骤、记录、数据、程序等)
请提供相应代码或相应界面截图证明。
(1)从Linux本地磁盘或者HDFS文件系统中,读取任意一个包含了若干英文单词的文本文件,并将其载入为RDD对象,调用适宜的Spark Transformation和Action 算子,完成WordCount程序,并显示运行结果;
import findspark
findspark.init()
import pyspark
from pyspark import SparkContext,SparkConf
conf =SparkConf().setAppName('spark rdd test')
sc = SparkContext(conf=conf)
text_file=sc.textFile("testInputFile.text")
conuts=text_file.flatMap(lambda line:line.split(" "))\
.map(lambda word:(word,1))\
.reduceByKey(lambda a,b:a+b)
conuts.saveAsTextFile("outputFile.txt")
line=text_file.first()
print(line)