scala(2.12.17) + spark(3.3.1)
IP1 |
spark master |
7077:接收来自 Worker 节点和应用程序的 RPC 请求,调度任务到 Worker 节点上执行。 8080:Master UI,查看 Master 节点的状态 |
|
spark worker |
8081:Worker UI,查看 Worker 节点的状态 |
IP2 |
spark worker |
8081:Worker UI,查看 Worker 节点的状态 |
IP3 |
spark worker |
8081:Worker UI,查看 Worker 节点的状态 |
spark集群是基于hadoop集群来进行部署的,前置条件,记得设置服务器hostname
1
| hostnamectl set-hostname hostname
|
解压安装scala,并将scala设置入环境变量【所有执行】
1
| tar -zxvf scala-2.12.17.tgz
|
编辑环境变量
1 2 3
| #scala语言版本 export SCALA_HOME=/data/src/bigdatapackage/scala-2.12.17 export PATH=$PATH:$SCALA_HOME/bin
|
更新环境变量
进行测试 scala -version,如果跳出下图所示则为安装成功

解压,设置spark环境变量
1
| tar -zxvf spark-3.3.1-bin.tgz
|
编辑环境变量
1 2 3
| #配置spark运行的环境变量 export SPARK_HOME=/data/spark-3.3.1 export PATH=$PATH:$SPARK_HOME/bin
|
更新环境变量
配置 **works.template**
文件
1 2 3 4 5 6 7 8 9 10
| # 先将模板文件复制 cp works.template works
# 编辑 works 文件 vi works
# 在其中添加当前工作的节点(更换为你自己的主机): computeServer1 computeServer2 computeServer3
|
配置 **spark-env.sh.template**
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 先将模板文件复制 cp spark-env.sh.template spark-env.sh
# 编辑 spark-env.sh 文件 vi spark-env.sh
# 设置hadoop core-site.yml文件位置,将hadoop中core-site文件拷贝 HADOOP_CONF_DIR=/data/src/spark-3.3.1-bin-hadoop3/conf/hadoop_conf_dir
# 在其中添加 JDK 并指定主机与端口: export JAVA_HOME=/data/jdk1.8.0_23 export SPARK_MASTER_HOST=computeServer1 export SPARK_MASTER_PORT=7077
|
修改为集群 YARN模式
YARN 模式建立在 standalone 模式之上,独立部署(Standalone)模式由Spark自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Spark主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱一些。
conf目录下复制hadoop的yarn-site文件
1
| cp /data/hadoop-3.3.0/etc/hadoop/yarn-site.xml
|
配置hadoop_conf_dir下的core-site.xml文件,主要用于指定hdfs位置
1
| cp /data/hadoop-3.3.0/etc/hadoop/core-site.xml /data/spark/conf/
|
复制 Hadoop 的 hdfs-site.xml
配置文件到 Spark 中的配置目录 conf
中
1
| cp $HADOOP_HOME/etc/hadoop/hdfs-site.xml $SPARK_HOME/conf
|
复制hive的配置文件hive-site.xml到conf目录,用于指定Spark on hive
1
| cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf
|
将spark分发到各个集群服务
1
| scp -r /data/spark-xxx root@ip:/xxx
|
启动spark集群【computeServer1 主机执行】
执行sbin下的 ./start-all.sh
1 2 3 4 5 6
| # 进入目录 cd sbin # 切换用户 su app # 执行start-all ./start-all.sh
|
当主机出现master+worker,其他机器出现worker时成功

执行测试spark-example中的计算圆周率测试
1
| bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://computeServer1:7077 ./examples/jars/spark-examples_2.12-3.3.1.jar 10
|