大数据平台技术—实验3(2019-2020)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档