在Windows上安装Apache Spark
本教程讲解了如何在Windows操作系统上安装Apache Spark。还将解释如何启动历史服务器并使用Web UI监视作业。
1. 安装 Java 8+
要在Windows操作系统上安装Apache Spark,需要Java 8或最新版本,因此从Oracle下载Java版本并将其安装在Windows系统上。
下载后,双击下载的.exe (例如,jdk-8u201-windows-x64.exe)文件,以便将其安装在windows系统上。选择任意自定义目录或保留默认位置。
注意:本教程在Java 8上安装Apache Spark,同样的步骤也适用于Java 11和Java 13版本。
2. 安装 Apache Spark
Apache Spark是以tar/zip压缩文件的形式出现的,因此在Windows系统上安装并不太麻烦,只需要下载并解压缩该文件即可。
通过访问Spark下载页面下载Apache Spark,默认为最新版本的Spark。 如果想使用不同版本的Spark和Hadoop,请从下拉框中选择自己想要的版本。随着您的选择,列表项3上的链接也随之更改为所选版本,并提供更新后的下载链接。 点击列表项3对应的下载链接下载,如下图所示:
下载后,使用任何zip工具解压缩二进制文件,并将解压缩后的目录spark-3.4.0-bin-hadoop3复制到c:\apps\opt\spark-3.4.0-bin-hadoop3
3. 配置Spark环境变量
Windows环境下安装Java和Apache Spark后,需要设置JAVA_HOME、SPARK_HOME、HADOOP_HOME和PATH环境变量。环境变量内容如下:
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_201 PATH = %PATH%;%JAVA_HOME%\bin SPARK_HOME = C:\apps\opt\spark-3.4.0-bin-hadoop3 HADOOP_HOME = C:\apps\opt\spark-3.4.0-bin-hadoop3 PATH=%PATH%;%SPARK_HOME%\bin;%HADOOP_HOME%\bin
4. 在Windows上使用winutils.exe
许多初学者认为Apache Spark需要安装Hadoop集群才能运行,但事实并非如此,Spark可以通过使用S3在AWS上运行,通过使用blob存储(不需要Hadoop和HDFS)在Azure上运行。
要在Windows上运行Apache Spark,需要winutils.exe,因为它使用Windows API在Windows中使用POSIX类似的文件访问操作。
winutils.exe使Spark能够使用Windows特定的服务,包括在Windows环境中运行shell命令。
下载winutils.exe用于Hadoop 3,并将其复制到%SPARK_HOME%\bin文件夹。 Winutils对于每个Hadoop版本都是不同的,因此请根据自己的Spark vs Hadoop发行版从https://github.com/steveloughran/winutils下载正确的版本。
5. Spark shell
spark-shell是Apache Spark发行版自带的CLI命令行工具。打开命令提示符,执行cd %SPARK_HOME%/bin目录,输入spark-shell命令运行Apache Spark shell。应该看到如下所示的内容(忽略最后看到的错误)。有时,Spark实例初始化可能需要一到两分钟才能到达下面的屏幕。
spark-shell还创建了一个Spark上下文Web UI,默认情况下,可以从http://localhost:4040访问该Web UI。
在spark-shell命令行上,可以运行任何Spark语句,如创建RDD、获取Spark版本等。
scala> spark.version res2: String = 3.4.0 scala> val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8,9,10)) rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at console:24 scala> rdd.collect().foreach(println) 1 2 3 4 5 6 7 8 9 10 scala>
这样就完成了在Windows 7、10和任何最新版本上安装Apache Spark。
6. Windows上的Web UI
Apache Spark提供了一套Web UI (job、Stages、Tasks、Storage、Environment、executor和SQL)来监控Spark应用程序的状态、Spark集群的资源消耗和Spark配置。在Spark Web UI上,可以看到操作是如何执行的。
7. 历史服务器
历史服务器保存了用户通过spark-submit、spark-shell提交的所有Spark应用程序的日志。可以通过在spark-defaults.conf文件中添加以下配置来启用Spark收集日志,spark-defaults.conf文件位于%SPARK_HOME%/conf目录下。
spark.eventLog.enabled true spark.eventLog.dir file:///E:/spark-3.4.0-bin-hadoop3/logs spark.history.fs.logDirectory file:///E:/spark-3.4.0-bin-hadoop3/logs
设置完上述属性后,通过启动以下命令启动历史服务器。
$SPARK_HOME/bin/spark-class.cmd org.apache.spark.deploy.history.HistoryServer
默认情况下,历史服务器监听18080端口,可以使用http://localhost:18080/从浏览器访问它。
通过点击每个App ID,将在Spark web UI中获得应用程序的详细信息。
课程章节 返回课程首页
-
Ch01 Spark架构与集群搭建
-
Ch02 开发和部署Spark程序
-
Ch03 Spark核心编程
-
Ch04 Spark SQL编程
-
Ch05 Spark SQL编程(高级)
-
Ch06 Spark Streaming流处理
-
Ch07 Spark结构化流处理
-
ch08 Spark结构化流(高级)
-
综合项目实训