[*]什么是 Apache 火花?
Apache Spark 是一个用于集群计算的分布式开源通用框架。 它的设计考虑了计算速度,从机器学习到流处理再到复杂的 SQL 查询。 它可以轻松地在多台计算机上处理和分发大型数据集的工作。
此外,它采用内存集群计算,通过减少写入磁盘的需要来提高应用程序的速度。 Spark 为多种编程语言提供 API,包括 Python、R 和 Scala。 这些 API 抽象出处理大数据可能需要的较低级别的工作。
有效地收集数据正在上升。 产生数据的效率和有效性的提高使得分析数据的新方法的扩散成为必要。 个人和行业在解析来自各个方面的名副其实的海量信息时最关心的是速度。 随着数据量的增加,用来理解这一切的技术必须跟上步伐。 Apache Spark 是提供此功能的最新开源技术之一。 在本教程中,我们将介绍如何安装 Apache Ubuntu 上的 Spark。
[*]飞行前检查
- 这些说明是在 Liquid Web Self-Managed Ubuntu 18.04 服务器上以 root 用户身份执行的。
[*]安装依赖项
确保我们所有的系统包都是最新的始终是最佳实践。 要开始,请运行以下命令。
root@ubuntu1804:~# apt update -y
因为需要Java才能运行 Apache Spark,我们必须确保安装了Java。 要验证这一点,请运行以下命令。
root@ubuntu1804:~# apt install default-jdk -y
[*]下载 Apache 火花
下一步是下载 Apache 火花到服务器。 最新的镜子 Apache Spark 版本可以在这里找到 Apache 星火下载页面. 在撰写本文时,3.0.1 版是最新版本。 下载 Apache Spark 使用以下命令。
root@ubuntu1804:~# wget https://downloads.apache.org/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz
--2020-09-09 22:18:41-- https://downloads.apache.org/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz
Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2
Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 219929956 (210M) [application/x-gzip]
Saving to: 'spark-3.0.1-bin-hadoop2.7.tgz'
spark-3.0.1-bin-hadoop2.7.tgz 100%[=========================================================================>] 209.74M 24.1MB/s in 9.4s
2020-09-09 22:18:51 (22.3 MB/s) - 'spark-3.0.1-bin-hadoop2.7.tgz' saved [219929956/219929956]
程序下载完成后,解压 Apache 使用此命令生成 tar 文件。
root@ubuntu1804:~# tar -xvzf spark-*
最后,将提取的目录移动到 /opt:
root@ubuntu1804:~# mv spark-3.0.1-bin-hadoop2.7/ /opt/spark
root@ubuntu1804:~#
[*]配置环境
在启动 Spark 主服务器之前,需要配置几个环境变量。 首先,通过运行以下命令在 .profile 文件中设置环境变量:
root@ubuntu1804:~# echo "export SPARK_HOME=/opt/spark" >> ~/.profile
root@ubuntu1804:~# echo "export PATH=$PATH:/opt/spark/bin:/opt/spark/sbin" >> ~/.profile
root@ubuntu1804:~# echo "export PYSPARK_PYTHON=/usr/bin/python3" >> ~/.profile
确保这些新的环境变量可以在 shell 中访问并且可用于 Apache Spark,还需要运行以下命令。
root@ubuntu1804:~# source ~/.profile
root@ubuntu1804:~#
[*]开始 Apache 火花
配置好环境后,接下来是启动 Spark 主服务器。 前面的命令将必要的目录添加到系统 PATH 变量中,因此应该可以从任何目录运行此命令:
root@ubuntu1804:~# start-master.sh
starting org.apache.spark.deploy.master.Master, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-ubuntu1804.awesome.com.out
在这种情况下, Apache Spark 用户界面正在远程服务器上本地运行。 要查看 Web 界面,需要使用 SSH 隧道将端口从本地机器转发到服务器。 注销服务器,然后运行以下命令,将主机名替换为服务器的主机名或 IP:
ssh -L 8080:localhost:8080 [email protected]
现在应该可以通过访问从本地计算机上的浏览器查看 Web 界面 https://localhost:8080/. 加载 Web 界面后,复制下一步所需的 URL。

[*]启动 Spark 工作进程
在这种情况下,安装 Apache Spark 在单台机器上。 因此,工作进程也将在此服务器上启动。 回到终端启动worker,运行以下命令,从Web界面粘贴Spark URL。
root@ubuntu1804:~# start-slave.sh spark://ubuntu1804.awesome.com:7077
starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-ubuntu1804.awesome.com.out
root@ubuntu1804:~#
现在工作程序正在运行,它应该可以在 Web 界面中看到。

[*]验证 Spark Shell
Web 界面很方便,但还需要确保 Spark 的命令行环境按预期工作。 在终端中,运行以下命令以打开 Spark Shell。
root@ubuntu1804:~# spark-shell
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.12-3.0.1.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
20/09/09 22:48:09 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at https://ubuntu1804.awesome.com:4040
Spark context available as 'sc' (master = local[*], app id = local-1599706095232).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_ / _ / _ `/ __/ '_/
/___/ .__/_,_/_/ /_/_ version 3.0.1
/_/
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 11.0.8)
Type in expressions to have them evaluated.
Type :help for more information.
scala> println("Welcome to Spark!")
Welcome to Spark!
scala>
Spark Shell 不仅在 Scala 中可用,在 Python 中也可用! Exit 通过按住 CTRL 键 + D 来查看当前的 Spark Shell。要测试 pyspark,请运行以下命令。
root@ubuntu1804:~# pyspark
Python 3.6.9 (default, Jul 17 2020, 12:50:27)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.12-3.0.1.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
20/09/09 22:52:46 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
____ __
/ __/__ ___ _____/ /__
_ / _ / _ `/ __/ '_/
/__ / .__/_,_/_/ /_/_ version 3.0.1
/_/
Using Python version 3.6.9 (default, Jul 17 2020 12:50:27)
SparkSession available as 'spark'.
>>> print('Hello pyspark!')
Hello pyspark!
注意:如果安装了较新版本的 Java JDK 之一,通常会出现上述警告。 Java 8 显然不会产生这个错误。 根据 https://github.com/apache/spark/pull/24825 和 https://issues.apache.org/jira/browse/HADOOP-10848,此问题已得到解决。
[*]关闭 Apache 火花
如果出于任何原因需要关闭主 Spark 进程和工作 Spark 进程,请运行以下命令:
root@ubuntu1804:~# stop-slave.sh
stopping org.apache.spark.deploy.worker.Worker
root@ubuntu1804:~# stop-master.sh
stopping org.apache.spark.deploy.master.Master
[*]结论
Apache Spark 提供了一个直观的界面来处理大数据集。 在本教程中,我们介绍了如何在单个系统上进行基本设置,但是, Apache Spark 在分布式系统上蓬勃发展。 这些信息应该可以帮助您开始并运行您的下一个大数据项目! 要更进一步,请前往 Apache 星火文档.
[*]我们能帮你什么吗?
我们的支持团队充满了对网络托管技术有着深入了解的人才,尤其是本文中讨论的那些。 如果您对此处列出的步骤感到不舒服,可以通过电话 1-800-580-4985 与我们联系,或 聊天,或者您可以向我们开票以帮助您完成整个过程。 如果您正在运行我们的全托管服务器之一,我们很乐意为您拿起火炬并携带它,直接实施您需要的本文中的更改。