摘要
本实验报告详细记录了在"大数据技术原理"课程中进行的Spark安装与应用实验。实验环境包括Spark、Hadoop和Java。实验内容涵盖了Spark的安装、配置、启动,以及使用Spark进行基本的数据操作,如读取本地文件、文件内容计数、模式匹配和行数统计。此外,实验还包括了对HDFS文件的读取和操作,以及使用Spark实现的词频统计程序。
在实验过程中,使用Scala和Java两种不同的编程语言来编写Spark应用程序,并熟悉了使用sbt和Maven工具进行程序的打包和部署。实验中遇到的问题包括程序打包、路径判断和依赖包下载等,这些问题都通过相应的解决方案得到了解决。
实验总结指出,Spark不仅继承了Hadoop MapReduce的优点,还通过将中间结果存储在内存中,避免了频繁的磁盘I/O操作,从而显著提高了数据处理速度。与Hadoop相比,Spark在批处理和内存数据分析方面展现出了更快的速度和更高的性能。
关键词:Spark;Hadoop;大数据;Java;数据处理
一.实验环境:
- spark
- hadoop
- java
二.实验内容与完成情况:
1.安装spark:
2.配置相关的文件:
3.启动spark:
4.读取本地文件
获得文件第一行内容:
5.文件内容计数:
6.获得含有spark的行,同时返回新的一个RDD:
7.统计这个新的RDD的行数:
8.读取hdfs文件,这里首先要启动hadoop:
9.读取文件:
10.使用cat命令获取文件内容:
11.切换spark编写语句打印hdfs文件中的第一行内容:
12.使用本地的文件实现词频统计程序
打开文件:
13.遍历文件中的内容,对每个单词进行切分归类:
14.使用键值对的方式对出现的单词进行计数:
15.使用scala编写Spark程序
创建一个文件夹:
16.压缩文件,将文件移动到新建好的文件夹下:
17.创建一个脚本文件,用于启动sbt:
18.增加权限:
19.查看sbt版本信息:
20.执行命令创建文件夹作为根目录:
21.使用sbt打包scala应用程序
创建编译文件实现程序编写:
22.将整个应用程序打包成为JAR:
23.得到结果:
24.使用java编写Spark程序,熟悉maven打包过程
下载maven:
25.编写java程序:
26.使用vim在对应目录下建立xml文件:
27.用maven打包java程序
检查文件结构:
28.将整个程序打包成为jar包:
29.通过spark-submit运行程序:
30.查看结果:
三.出现的问题及解决方案:
1.编写程序的时候,需要使用到maven进行程序的打包。
2.进行打包的时候需要对路径进行判断,防止路径错误导致的数据文件的丢失。
3.在进行打包的时候需要进行等待软件包下载好,否则再次进行打包的时候会产生数据的流失。
四.总结:
(1)Hadoop的框架最核心的设计就是:HDFS 和 Map Reduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
(2)Spark 拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS
(3)Hadoop是磁盘级计算,计算时需要在磁盘中读取数据;其采用的是MapReduce的逻辑,把数据进行切片计算用这种方式来处理大量的离线数据.
(4)Spark,它会在内存中以接近“实时”的时间完成所有的数据分析。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。
可以判断Spark的速度会比Hadoop更快,Spark的性能更好。