spark安装配置linux图文教程
本文旨在帮助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。
sudo apt-get -y install openjdk-8-jdk-headless
在JDK安装后,通过运行java -version检查其是否安装成功
在Ubuntu上安装Python(可选)
如果你想在Ubuntu服务器上用Scala和Java运行Spark,你可以跳过这一部分。
如果你想在Ubuntu服务器上运行PySpark的例子(用Python的Spark),就需要安装Python。
sudo apt install python3
当然这边推荐你安装Anaconda3,
wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
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服务器。
一旦你的下载完成,用tar命令解压缩档案文件内容,tar是一个文件归档工具。一旦解压完成,将文件夹重命名为spark。
tar -xzf spark-3.0.1-bin-hadoop2.7.tgz
mv spark-3.0.1-bin-hadoop2.7 spark
TODO - Add Python environment
Spark环境变量
在.bashrc或.profile文件中添加Apache Spark环境变量。用vi编辑器打开文件,添加以下变量。
sparkuser@sparknode:~$ vi ~/.bashrc
# Add below lines at the end of the .bashrc file.
export SPARK_HOME=/home/sparkuser/spark
export PATH=$PATH:$SPARK_HOME/bin
现在,通过运行以下命令将环境变量加载到已打开的会话中
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:
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文件并添加以下配置:
# Enable to store the event log
spark.eventLog.enabled true
#Location where to store event log
spark.eventLog.dir file:///tmp/spark-events
#Location from where history server to read event log
spark.history.fs.logDirectory file:///tmp/spark-events
创建Spark事件日志目录。Spark为你提交的所有应用程序保留日志:
sparkuser@sparknode:~$ mkdir /tmp/spark-events
运行$
SPARK_HOME/sbin/start-history-server.sh来启动历史服务器。
sparkuser@sparknode:~$ $SPARK_HOME/sbin/start-history-server.sh
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。
本站资源均来源于互联网,仅限于学习研究,严禁从事商业或者非法活动!