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进程。

目录
相关文章
|
5月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
1237 1
|
8月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
568 12
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
650 6
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
359 2
|
10月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
474 23
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
306 3
Ubuntu系统下部署flatpress轻量级博客系统
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
497 1
|
4月前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
393 5
|
4月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
496 18
|
5月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
384 18