百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Apache Spark - 在Linux、Ubuntu上安装

nanshan 2024-10-12 05:31 25 浏览 0 评论

本文旨在帮助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服务器。

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

一旦你的下载完成,用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。

相关推荐

ssh终端xshell日志查看命令(xshell怎么看日志)

现在我们云服务器运维较多用的是SSH工具,其中常用的包括PUTTY、XSHELL等,其实大同小异界面UI稍微不同,但是都可以进入远程连接。这里有朋友提到如何查看服务器的日志文件,这个其实和是否使用XS...

使用 Fail Ban 日志分析 SSH 攻击行为

通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...

如何高效读取Linux日志文件?这些命令要熟记于心!

在Linux系统中,日志文件通常存储在/var/log目录下。比如,/var/log/syslog(或/var/log/messages,视发行版而定)记录系统整体事件,/var/log/a...

Windows服务器远程登录日志查询方法,linux查看登录日志方法

概述本文介绍Windows、Linux服务器查询系统的远程登录日志方法。根据服务器所使用的操作系统不同,有以下两种查询方法。Linux操作系统的登录日志查询通过远程连接登录Linux服务器,使用roo...

iptables防火墙如何记录日志(防火墙日志查看)

例如:记录所有ssh服务的登录的日志首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到/var/log/messages中。如果你已经有一些iptables规则了,那么将记录日志...

如何安全管理SSH密钥以防止服务器被入侵

SSH密钥安全管理实施指南(2025年更新版)一、密钥生成与存储规范高强度密钥生成bashCopyCodessh-keygen-ted25519-a100#生成ED25519算法密钥(比...

在CentOS上安装nginx服务器(centos搭建代理服务器)

一、环境描述1.虚拟机配置CPU:单核内存:2GB硬盘:120GBIP:10.24.17.1082.操作系统版本:CentOS6.6x86_64安装方式:Minimal3.虚拟化环境VM...

CentOS7安全加固的一份整理规划建议

◆更新系统:及时更新CentOS7操作系统版本和安全补丁,确保系统以最新状态运行。◆关闭不必要的服务:在运行系统时,应关闭不需要的服务和端口,以减少系统暴露的攻击面。◆安装防火墙:使用iptables...

第四十七天-二叉树,centOS安装tomcat,Maven,vsftpd

学习笔记:1.Maven是Apache下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven...

Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器

一、前言为什么不是远程连接Linux服务器?因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。以下所述都是在CentOS操作系统下的。服务器刚换成Linux的时候很迷茫,感觉无从下手...

CentOS 安全加固操作,保护你的操作系统

系统加固是保障系统安全的重要手段,对于维护企业数据安全、用户隐私以及系统稳定运行具有重要意义。加固后的系统更加健壮和稳定,能够有效减少因安全问题导致的系统故障和停机时间,提高系统的可用性和可靠性。通过...

Dockerfile部署Java项目(docker如何部署java项目)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

CentOS7云主机部署Fail2ban阻断SSH暴力破解

关于Fail2banFail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)例如:当有人在试探你的HTTP、SSH、SMTP、FTP密...

在CentOS7上用源码编译安装PostgreSQL

1、新建postgres用户#useraddpostgres&&passwdpostgres2、安装依赖包#yum-yinstallmakegccgcc-c++readline...

pure-ftpd 使用(ftp prompt命令)

pure-ftpd是一个免费的ftp软件,其他介绍就不多说了。我们直接开始主题安装centosyuminstallepel-releaseyuminstallpure-ftpd配置备份原配置...

取消回复欢迎 发表评论: