什么是Spark?
Spark是一个快速、通用、可扩展的大数据处理引擎,最初由加州大学伯克利分校的AMPLab开发。它提供了高级API,用于在大规模数据集上执行并行处理。Spark支持多种编程语言,包括Java、Scala、Python和R,因此被广泛应用于大数据分析和机器学习等领域。
一、目的
1、掌握使用 Spark 访问本地文件和 HDFS 文件的方法
2、掌握 Spark 应用程序的编写、编译和运行方法
二、平台
(1)操作系统:Ubuntu20.04或其他稳定版本;
(2)Spark 版本:3.1.3;
(3)Hadoop 版本:3.1.3。
三、步骤
1、Spark读取文件系统的数据
(1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数;
启动spark-shell:
cd /usr/local/spark
bin/spark-shell
读取文件:
val textFile=sc.textFile("file:///home/hadoop/test.txt")
统计文件的行数:
textFile.count()
(2)在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在, 请先创建),然后,统计出文件的行数;
启动Hadoop,向hdfs中上传文件test.txt:
./sbin/start-dfs.sh
./bin/hdfs dfs -put ~/test.txt
./bin/hdfs dfs -ls
读取 HDFS 系统文件“/user/hadoop/test.txt”并统计文件的行数:
val textFile=sc.textFile("hdfs://localhost:9000/user/hadoop/test.txt")
textFile.count()
(3)编写独立应用程序(使用 Scala 语言),读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。
查看sbt版本,验证sbt安装成功:
cd /usr/local/sbt
./sbt sbtVersion
创建一个文件夹 sparkapp 作为应用程序根目录并编写HDFStest.scala文件:
cd ~ # 进入用户主文件夹
mkdir ./sparkapp # 创建应用程序根目录
mkdir -p ./sparkapp/src/main/scala # 创建所需的文件夹结构
cd sparkapp/src/main/scala
touch HDFStest.scala #创建名为HDFStest.scala的文件
gedit HDFStest.scala #编写程序
HDFStest.scala文件内容:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object HDFStest {
def main(args: Array[String]) {
val logFile = "hdfs://localhost:9000/user/hadoop/test.txt"
val conf = new SparkConf().setAppName