Spark 初级编程实践

什么是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