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

更新环境变量

1
source /etc/profile

进行测试 scala -version,如果跳出下图所示则为安装成功

image.png

解压,设置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

更新环境变量

1
source /etc/profile

配置 **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时成功

image.png

执行测试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