spark安装配置linux图文教程

5151593882023年02月07日技术分享

本文旨在帮助Spark初学者,学习如何在基于Linux的Ubuntu服务器上安装Apache Spark,同样的步骤也可用于安装Centos、Debian等。在现实环境中,所有的Spark应用程序都运行在基于Linux的操作系统上,因此,了解如何在一些基于Unix的操作系统上安装和运行Spark应用程序,如Ubuntu服务器,是一件好事。

虽然这篇文章解释的是Ubuntu,但你可以按照这些步骤在任何基于Linux的操作系统上安装Spark,如Centos,Debian等,我按照下面的步骤在Ubuntu服务器上设置我的Apache Spark集群。

预备知识:

  • 运行Ubuntu服务器
  • 对Ubuntu服务器的root权限 如果你只是想独立运行Spark,请继续阅读这篇文章。

在Ubuntu上安装Java

Apache Spark是用Scala编写的,Scala是一种Java语言,因此要运行Spark,你需要安装Java。由于甲骨文的Java在这里得到了许可,我使用openJDK Java。如果你想使用其他供应商或Oracle的Java,请这么做。这里我将使用JDK 8。


 
  1. sudo apt-get -y install openjdk-8-jdk-headless

在JDK安装后,通过运行java -version检查其是否安装成功

在Ubuntu上安装Python(可选)

如果你想在Ubuntu服务器上用Scala和Java运行Spark,你可以跳过这一部分。

如果你想在Ubuntu服务器上运行PySpark的例子(用Python的Spark),就需要安装Python。


 
  1. sudo apt install python3

当然这边推荐你安装Anaconda3,


 
  1. wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
  2. bash /tmp/Anaconda3-2020.02-Linux-x86_64.sh

Apache Spark在Ubuntu上的安装

为了在基于Linux的Ubuntu上安装Apache Spark,请访问Apache Spark下载网站,进入下载Apache Spark部分,如下图所示,点击第3点的提供的下载链接,这将带你到有镜像URL的页面进行下载,从其中一个镜像站点复制链接。

如果你想使用不同版本的Spark & Hadoop,从下拉菜单中选择你想要的版本(第1点和第2点);第3点的链接会变为所选的版本,并为你提供一个更新的下载链接。

使用wget命令将Apache Spark下载到你的Ubuntu服务器。


 
  1. wget https://downloads.apache.org/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz

一旦你的下载完成,用tar命令解压缩档案文件内容,tar是一个文件归档工具。一旦解压完成,将文件夹重命名为spark。


 
  1. tar -xzf spark-3.0.1-bin-hadoop2.7.tgz
  2. mv spark-3.0.1-bin-hadoop2.7 spark
  3. TODO - Add Python environment

Spark环境变量

在.bashrc或.profile文件中添加Apache Spark环境变量。用vi编辑器打开文件,添加以下变量。


 
  1. sparkuser@sparknode:~$ vi ~/.bashrc
  2. # Add below lines at the end of the .bashrc file.
  3. export SPARK_HOME=/home/sparkuser/spark
  4. export PATH=$PATH:$SPARK_HOME/bin

现在,通过运行以下命令将环境变量加载到已打开的会话中


 
  1. sparkuser@sparknode:~$ source ~/.bashrc

如果你添加了.profile文件,那么通过关闭和重新打开会话来重新启动你的会话。

测试Ubuntu上的Spark安装

就这样,Apache Spark在Linux Ubuntu上的安装完成了。现在让我们来运行一个Spark二进制发行版附带的例子。

这里我将使用Spark-Submit命令通过运行
org.apache.spark.examples.SparkPi例子来计算10个地方的PI值。你可以在$SPARK_HOME/bin目录下找到spark-submit:


 
  1. spark-submit --class org.apache.spark.examples.SparkPi spark/examples/jars/spark-examples_2.12-3.0.1.jar 10

Spark Shell

Apache Spark的二进制文件带有一个交互式的spark-shell。为了启动一个shell来使用Scala语言,请到你的$SPARK_HOME/bin目录下,输入 "spark-shell"。这个命令会加载Spark并显示你所使用的Spark的版本。

注意:在spark-shell中,你只能用Scala运行Spark。为了运行PySpark,你需要通过运行$SPARK_HOME/bin/pyspark打开pyspark shell。在运行pyspark shell之前,请确保你已经安装了Python。

默认情况下,spark-shell提供了spark(SparkSession)和sc(SparkContext)对象供使用。让我们来看看一些例子。

Spark-shell还创建了一个Spark上下文的Web UI,默认情况下,它可以从http://ip-address:4040。

Spark的Web UI

Apache Spark提供了一套Web UI(Jobs, Stages, Tasks, Storage, Environment, Executors, and SQL)来监控你的Spark应用程序的状态,Spark集群的资源消耗,以及Spark的配置。在Spark Web UI上,你可以看到Spark动作和转换操作是如何执行的。你可以通过打开http://ip-address:4040/。用你的服务器IP替换ip-address.

Spark历史服务器

Spark历史服务器,保留了你通过spark-submit和spark-shell提交的所有完成的Spark应用程序的日志。

创建$
SPARK_HOME/conf/spark-defaults.conf文件并添加以下配置:


 
  1. # Enable to store the event log
  2. spark.eventLog.enabled true
  3.  
  4. #Location where to store event log
  5. spark.eventLog.dir file:///tmp/spark-events
  6.  
  7. #Location from where history server to read event log
  8. spark.history.fs.logDirectory file:///tmp/spark-events

创建Spark事件日志目录。Spark为你提交的所有应用程序保留日志:


 
  1. sparkuser@sparknode:~$ mkdir /tmp/spark-events

运行$
SPARK_HOME/sbin/start-history-server.sh来启动历史服务器。


 
  1. sparkuser@sparknode:~$ $SPARK_HOME/sbin/start-history-server.sh
  2. starting org.apache.spark.deploy.history.HistoryServer, logging to /home/sparkuser/spark/logs/spark-sparkuser-org.apache.spark.deploy.history.HistoryServer-1-sparknode.out

按照配置,历史服务器默认运行在18080端口:

使用spark-submit命令再次运行PI实例,并刷新History服务器,它应该显示最近的运行情况。

总结

综上所述,已经学会了在基于Linux的Ubuntu服务器上安装Apache Spark的步骤,也学会了如何启动History服务器,访问Web UI。

本站资源均来源于互联网,仅限于学习研究,严禁从事商业或者非法活动!