实验三Spark 读取文件系统的数据
Spark 读取文件系统的数据
当然,让我们逐步完成每个任务:
(1) 在 spark-shell 中读取 Linux 系统本地文件"/home/hadoop/test.txt",然后统计出文件的行数:
// 启动 spark-shell
$ spark-shell
// 读取本地文件并计算行数
val localFileRDD = sc.textFile("file:///home/hadoop/test.txt")
val lineCount = localFileRDD.count()
println(s"本地文件的行数: $lineCount")
(2) 在 spark-shell 中读取 HDFS 系统文件"/user/hadoop/test.txt",然后,统计出文件的行数:
// 读取 HDFS 文件并计算行数
val hdfsFileRDD = sc.textFile("hdfs:///user/hadoop/test.txt")
val lineCountHDFS = hdfsFileRDD.count()
println(s"HDFS 文件的行数: $lineCountHDFS")
(3) 编写独立应用程序,读取 HDFS 系统文件"/user/hadoop/test.txt",然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。
首先,创建一个Scala应用程序,比如SparkFileReader.scala:
import org.apache.spark.{SparkConf, SparkContext}
object SparkFileReader {
def main(args: Array[String]): Unit = {
// 设置 Spark 配置
val conf = new SparkConf().setAppName("SparkFileReader")
val sc = new SparkContext(conf)
// 读取 HDFS 文件并计算行数
val hdfsFileRDD = sc.textFile("hdfs:///user/hadoop/test.txt")
val lineCountHDFS = hdfsFileRDD.count()
println(s"HDFS 文件的行数: $lineCountHDFS")
// 停止 Spark 上下文
sc.stop()
}
}
然后,使用 sbt 构建项目并创建一个 JAR 文件:
$ sbt package
这将在 target/scala-/ 目录下创建一个 JAR 文件。
最后,使用 spark-submit 提交 JAR 文件到 Spark:
$ spark-submit --class SparkFileReader --master <spark-master-url> target/scala-<version>/sparkfilereader_2.11-<version>.jar
将 <spark-master-url> 替换为 Spark 主节点的 URL。这将在 Spark 集群上执行你的 Spark 应用程序。
注意:确保 Spark 和 Hadoop 已正确配置,并在运行 Spark 应用程序之前在 HDFS 中准备好必要的文件。根据你的环境调整代码和配置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律