Ubuntu22.04配置Spark3.3.1集群

Spark启动方式有:local模式、standalone模式、Yarn模式、K8S和Mesos模式,本教程只涉及前三种模式,另外两种可以自行查找资料。

Local模式

1.下载Spark

https://archive.apache.org/dist/spark/
由于我的Hadoop版本是3.1.3,所以下载的Spark版本也是Spark3,这里下的是Spark3.3.1,只要是Spark3都可以和Hadoop3兼容。

2.解压Spark压缩包

解压Spark的压缩包,移动到/usr/local/下,修改文件夹的名字为spark

cd ~/Downloads
sudo tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /usr/local/
cd /usr/local/
mv spark-3.3.1-bin-hadoop3.2 spark

3.Local模式启动Spark

bin/spark-shell

启动成功后,可以输入网址主机名:4040进行 Web UI 监控页面访问
image.png
image.png

Standalone模式

1.进入spark文件夹下的conf目录,修改workers.template文件名为workers

cd conf/
mv workers.template workers

2.修改workers文件,添加worker节点

 vim workers 

image.png
image.png

3.修改spark-env.sh.template文件名为spark-env.sh

4.修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点

image.png
image.png
Java默认安装路径如下,手动安装的Java可以指定自己的Java路径
image.png

5.分发Spark

image.png

6.Standalone模式启动Spark集群

cd spark/
sbin/start-all.sh
xcall jps

7.查看进程

image.png
Spark正常启动输入网址主机名:8080进行监控
image.png

8.提交应用测试Spark

bin/spark-submit 
--class org.apache.spark.examples.SparkPi 
--master spark://hadoop1:7077 
./examples/jars/spark-examples_2.12-3.3.1.jar 10

注意:--master后面指定的主机名要改成自己的主机名(hadoop1改成自己的主机名)
指定的jar包要指定为自己的jar包,不同版本的示例jar包名字不同。
10是指当前应用的任务数量
image.png
提交任务时会有一个SparkSubmit进程,任务结束后进程停止
image.png

Yarn 模式

1.修改Hadoop配置文件

修改/usr/local/hadoop/etc/hadoop/yarn-site.xml, 并分发

vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认
是true --> 
<property> 
<name>yarn.nodemanager.pmem-check-enabled</name> 
<value>false</value> 
</property> 
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认
是true --> 
<property> 
<name>yarn.nodemanager.vmem-check-enabled</name> 
<value>false</value> 
</property>

image.png
分发修改后的配置文件

xsync /usr/local/hadoop/etc/hadoop/yarn-site.xml

image.png

2. 修改conf/spark-env.sh,添加 JAVA_HOMEYARN_CONF_DIR 配置

vim conf/spark-env.sh

image.png

3.分发更改后的Spark-env.sh

xsync conf/spark-env.sh

image.png

4.Yarn模式提交任务测试

  1. Client模式
bin/spark-submit --class org.apache.spark.examples.SparkPi
--master yarn 
--deploy-mode client
./examples/jars/spark-examples_2.12-3.3.1.jar 10

image.png

  1. Cluster模式
bin/spark-submit --class org.apache.spark.examples.SparkPi
--master yarn 
--deploy-mode cluster
./examples/jars/spark-examples_2.12-3.3.1.jar 10

image.png

5.在hadoop1:8088查看,程序运行成功

image.png

补充:提交参数说明

参数 解释 可选值举例
--class Spark 程序中包含主函数的类
--master Spark 程序运行的模式(环境) 模式:local[*]、spark://hadoop1:7077、Yarn
--executor-memory 1G 指定每个executor 可用内存为1G 符合集群内存配置即可,具体情况具体分析。
--total-executor-cores 2 指定所有executor使用的cpu核数析。为2个
--executor-cores 指定每个executor使用的cpu核数
application-jar 打包好的应用 jar,包含依赖。这个URL 在集群中全局可见。比如 hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的
path 都包含同样的 jar
application-arguments 传给 main()方法的参数
posted @ 2024-03-12 11:04  rusthx  阅读(540)  评论(0)    收藏  举报