Spark 3.x各模式部署 - Ubuntu(下)

简介: Spark 3.x各模式部署 - Ubuntu(下)

四、本地模式

Spark的本地模式不需要启动任何进程,主要为了方便验证算法的可行性,能够启用的资源有限,可以使用多线程。

1. 解压安装

  • 解压缩
tar -zxvf tar -zvxf spark-3.3.2-bin-hadoop3.tgz
  • 环境变量配置

在.bashrc文件结尾添加以下内容:

export SPARK_HOME=/home/hadoop/spark-3.3.2-bin-hadoop3
export PATH=$PATH:$SPARK_HOME/bin
  • 刷新测试

配置完成后使其立即生效,并通过spark-shell命令进行测试【使用:q退出】:

source ~/.bashrc
spark-shell

2. 运行测试

如果你能够正常的使用spark-shell,已经足以说明安装过程已经完成了,在spark-shell输出的日志中,可以清楚的看到,开启了一个本地模式master = local并创建了Spark Context对象,可以在交互环境里直接使用sc

  • 找到自带案例

这里我们去运行一个自带的程序,当然你也可以继续在spark-shell里面玩耍。进入到Spark的examples路径下,可以看到一个jar包:spark-examples_2.12-3.3.2.jar,我们将其作为一个计算任务提交。

  • 提交计算任务

使用spark-submit提交一个最简单的圆周率输出任务,命令如下:

spark-submit --class org.apache.spark.examples.SparkPi --master local[2] /home/hadoop/spark-3.3.2-bin-hadoop3/examples/jars/spark-examples_2.12-3.3.2.jar 10

执行后,将以本地模式开启两个线程,参数10为样本个数,也可以理解为精度。如果我们使用1000将会运行更长的时间,但是结果会更加精确,如图:

五、伪分布模式

对于Spark来说,需要修改的配置文件比较少,只需要指定好端口号以及相关的环境、分配的资源即可。

配置文件路径:$SPARK_HOME/conf

1. spark-env.sh

  • 重命名文件
mv spark-env.sh.template spark-env.sh
  • 修改配置

编辑spark-env.sh文件,找到对应配置打开注释或者直接添加新的一行:

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
SPARK_MASTER_HOST=hadoop
SPARK_MASTER_PORT=7077
# 默认为8080,如果有冲突可以修改
SPARK_MASTER_WEBUI_PORT=18080
# 如果已经配置好Hadoop【非必需】
HADOOP_CONF_DIR=/home/hadoop/hadoop-3.3.5/etc/hadoop

2. spark-defaults.conf

  • 重命名文件
mv spark-defaults.conf.template spark-defaults.conf
  • 修改配置

在这个配置文件中可以修改一些在运行过程中的默认设置,也可以在提交计算任务时手动指定,可根据需要进行配置。

# Spark 主节点的地址和端口号
spark.master                         spark://hadoop:7077
# Spark Driver内存分配
spark.driver.memory                  1g
# Spark Executor内存分配
spark.executor.memory                1g
# Spark Executor内核分配
spark.executor.cores                 1

3. workers

  • 重命名文件
mv workers.template workers
  • 修改配置

在伪分布模式下,只需要将原有的localhost改为当前主机名即可。

4. SSH免密登录

在使用Hadoop集群时,建议使用主机名称,这样即使ip地址发生变化,也不需要去修改相关的配置文件,只需要去修改一下主机名映射文件就可以了。上文的配置文件中都使用了hadoop作为主机名,以此为例进行演示。

  • Ubuntu修改主机名

在root用户下修改主机名设置文件:

sudo hostnamectl set-hostname hadoop

此时已经修改成功,打开一个新的回话和终端时将看到变化。

  • 开启SSH服务

首先确认SSH服务状态:

systemctl status ssh

如果没有安装使用以下命令:

apt-get install openssh-server

启动SSH服务:

sudo systemctl enable ssh
sudo systemctl start ssh
systemctl status ssh

  • 生成密钥
# 切换到hadoop用户下执行
su - hadoop
# 整个过程一直回车即可
ssh-keygen -t rsa
  • 配置免密登录

Hadoop启动时,会逐一登录到worker节点去启动相应的进程,对于伪分布模式来说,相当于自己登录自己。配置免密登录后,不再需要密码,而是通过密钥进行认证。

ssh-copy-id hadoop@hadoop
ssh hadoop

5. 集群启动

现在所有的配置已经完成,进入到Spark的sbin目录,启动集群。

cd $SPARK_HOME/sbin
./start-all.sh
# 使用jps验证
jps

如果出现MasterWorker证明成功。

六、全分布模式

全分布模式的配置方式和步骤其实与伪分布式没有任何差别,在一台机器上配置好所有的配置文件后,分发到其它机器即可,核心步骤如下:

1. 前置环境

  • 部署安装JDK【三台机器】
  • 创建单独用户【三台机器】
  • 解压安装Scala【主节点】
  • 解压安装Spark【主节点】
  • 配置环境变量【主节点】

2. 配置免密登录

假设我们有3台机器:hadoop01、hadoop02、hadoop03,每一台机器都执行如下操作:

# 在hadoop用户下执行
ssh-keygen -t rsa
ssh-copy-id hadoop@hadoop01
ssh-copy-id hadoop@hadoop02
ssh-copy-id hadoop@hadoop03

这样执行完成后,三台机器都可以免密互相登录,这样以后我们可以在任意一台机器上控制集群状态或者提交任务。

3. 文件分发

现在我们将已经安装好的软件和配置分发到另外两台机器,保证三台机器的配置文件和环境是完全一致的,如果配置文件发生修改,也要记得手动同步覆盖。

scp -r /home/hadoop/scala-2.12.17 hadoop@hadoop02:/home/hadoop
scp -r /home/hadoop/scala-2.12.17 hadoop@hadoop03:/home/hadoop
scp -r /home/hadoop/spark-3.3.2-bin-hadoop3@hadoop02:/home/hadoop
scp -r /home/hadoop/spark-3.3.2-bin-hadoop3@hadoop03:/home/hadoop
scp -r /home/hadoop/.bashrc hadoop@hadoop02:/home/hadoop
scp -r /home/hadoop/.bashrc hadoop@hadoop03:/home/hadoop

由于我们已经配置了免密登录,整个过程不需要密码。

4. 集群启动

集群的启动和停止与伪分布模式相同,可以在任一节点上执行启动脚本:

cd $SPARK_HOME/sbin
./start-all.sh

如果在workers文件中填写了主节点,则在主节点中会出现Master和Worker进程,从节点上会出现Worker进程。

目录
相关文章
|
24天前
|
存储 关系型数据库 文件存储
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
这篇文章是关于如何在Ubuntu 22.04LTS上使用cephadm工具快速部署Ceph Reef(18.2.X)存储集群的详细教程,包括ceph的基本概念、集群的搭建步骤、集群管理以及测试集群可用性等内容。
117 8
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
|
24天前
|
Ubuntu 数据安全/隐私保护
Ubuntu22.04LTS环境部署实战
这篇文章提供了Ubuntu 22.04 LTS操作系统的详细安装步骤,包括选择语言、键盘布局、网络配置、软件源设置、磁盘分区、安装OpenSSH服务以及完成安装和首次登录系统的过程。
69 6
Ubuntu22.04LTS环境部署实战
|
24天前
|
存储 Kubernetes Ubuntu
Ubuntu 22.04LTS版本二进制部署K8S 1.30+版本
这篇文章详细介绍了在Ubuntu 22.04 LTS系统上使用VMware Fusion虚拟化软件部署Kubernetes 1.30+版本的完整过程,包括环境准备、安装containerd、配置etcd、生成证书、部署高可用组件、启动Kubernetes核心组件以及网络插件的部署和故障排查。
62 4
|
24天前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
48 3
|
25天前
|
Kubernetes Ubuntu 网络安全
Ubuntu基于kubeadm快速部署K8S实战
关于如何在Ubuntu系统上使用kubeadm工具快速部署Kubernetes集群的详细实战指南。
103 2
|
8天前
|
Ubuntu 开发工具 git
在Ubuntu上部署BOA服务器的步骤
部署BOA服务器是一个涉及多个步骤的过程,包括系统更新、安装依赖、下载和编译源代码、配置服务器以及启动和验证。遵循上述步骤,可以在Ubuntu系统上成功部署BOA服务器,为开发和测试提供一个轻量级的Web服务器环境。
12 0
|
22天前
|
存储 Ubuntu 网络安全
在Ubuntu系统下通过Caddy实现LXD的安装与部署
通过上述步骤,您可以在Ubuntu系统下通过Caddy实现LXD的安装与部署。这种方法不仅可以提高容器管理的效率,还可以借助Caddy的自动SSL管理功能提升安全性。
15 0
|
2月前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
119 1
Spark快速大数据分析PDF下载读书分享推荐
|
1月前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
158 3
|
27天前
|
机器学习/深度学习 分布式计算 大数据
Spark 适合解决多种类型的大数据处理问题
【9月更文挑战第1天】Spark 适合解决多种类型的大数据处理问题
35 3