Spark分布式环境安装
将spark-3.5.0-bin-hadoop3.tgz 文件上传到 Linux 并解压缩,放置在指定位置,路径中不要包含中文或空格,解压缩操作,不再强调。
基于Windows的环境体验
启动脚本
启动界面如图-1所示。
图-1 spark-shell启动界面
执行入门案例
1)spark-shell终端代码:
sc.textFile("E:/data/hello.txt")
.flatMap(_.split("\\s+"))
.map((_, 1))
.reduceByKey(_+_)
.foreach(println)
2)结果查看:
图2 spark入门案例执行结果图
3)Web界面查看:
图-3 spark入门案例web-ui显示图
能够得出的基本结论是什么?
1)Spark的application,可以有非常多的job作业,和mr不同,一个应用就提交一个job就行。
2)job的执行,需要action算子操作触发,否则不会执行,触发的操作就是spark作业执行的动因。
3)spark job作业的执行是分stage阶段的。
图-4 job分stage阶段图
4)spark job作业的执行stage阶段形成了一个stage的DAG有向无环图。
图-5 stage dag构成图
Spark分布式环境安装
解压
tar -zxvf spark-3.5.0-bin-hadoop3.tgz -C /opt/module
重命名
mv spark-3.5.0-bin-hadoop3 spark
添加环境变量
vim /etc/profile
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
环境变量生效
source /etc/profile
修改配置文件
1)拷贝works和spark-env.sh文件:
mv works.template works
mv spark-env.sh.template spark-env.sh
2)修改works文件内容:
hadoop101
hadoop102
hadoop103
3)在spark-env.sh添加如下内容:
export JAVA_HOME=/opt/module/jdk1.8.0_212 export
SPARK_MASTER_HOST=hadoop101 export SPARK_MASTER_PORT=7077
4)发送spark到其它节点中:
scp -r spark/ hadoop102:$PWD
scp -r spark/ hadoop103:$PWD
启动并体验
1)启动:
start-all.sh
2)停止:
stop-all.sh
3)验证:访问地址为http://master-ip:8080、hadoop101:8080
sbin/start-all.sh
sbin/stop-all.sh
图-6 spark集群web图
4)提交任务&执行程序:
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop01:7077 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 2 \
--queue default \
./examples/jars/spark-examples_2.12-3.5.0.jar \
100