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 监控页面访问


Standalone模式
1.进入spark文件夹下的conf目录,修改workers.template文件名为workers
cd conf/
mv workers.template workers
2.修改workers文件,添加worker节点
vim workers


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


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

5.分发Spark

6.Standalone模式启动Spark集群
cd spark/
sbin/start-all.sh
xcall jps
7.查看进程

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

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是指当前应用的任务数量

提交任务时会有一个SparkSubmit进程,任务结束后进程停止

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>

分发修改后的配置文件
xsync /usr/local/hadoop/etc/hadoop/yarn-site.xml

2. 修改conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置
vim conf/spark-env.sh

3.分发更改后的Spark-env.sh
xsync conf/spark-env.sh

4.Yarn模式提交任务测试
- 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

- 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

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

补充:提交参数说明
| 参数 | 解释 | 可选值举例 |
|---|---|---|
| --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()方法的参数 |

浙公网安备 33010602011771号