Local 部署安装
下载地址: https://dlcdn.apache.org/spark/spark-3.1.3/spark-3.1.3-bin-hadoop3.2.tgz
https://www.anaconda.com/products/distribution#Downloads
1 | sh Anaconda3-2022.05-Linux-x86_64.sh |
测试
1 | $ sudo su |
http://ip:port 访问相应的端口ip可以看到spark job如下:
1 | ### spark-shell 运行scala |
spark-shell 运行scala交互如下:
1 | ### submit-submit 直接运行 |
Standalone 架构
Standalone 模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群环境,Standalone模式是真实的在多个机器之间搭建spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。
Standalone 是完整的spark运行环境,其中:
- Master角色以Master进程存在,worker角色以worker进程存在
- Driver角色在运行时存在于Master进程内,Executor运行于Worker进程内
Standalone集群在进程上主要有3类进程:
- 主节点Master进程:
- master角色,管理整个集群资源,并托管运行各个任务的Driver
- 从节点Workers:
- worker角色,管理每个机器的资源,分配对应的资源来运行Excutor(Task)
- 历史服务器HistoryServer(可选):
- spark Application运行完成以后,保存时间日志数据至HDFS,启动HistoryServer可以查看应用运行相关信息
Standalone 集群环境安装
master 运行Spark的Master进程和1个work进程
worker1 运行Spark的1个work进程
worker2 运行Spark的1个work进程
每台机器部署Anaconda(python) 环境【略,同上】
每台机器部署spark 环境【略,同上】
spark集群文件配置
1 | cd /opt/spark/conf |
1)修改 workers
1 | echo 'master |
2) 修改 spark-env.sh
1 | echo ' |
hdfs://master:9710 对应 fs.defaultFS;同时需要在hadoop下创建/sparklog文件夹 “hadoop fs -mkdir /sparklog”
3) 修改 spark-defaults.conf
1 | echo ' |
4) 修改 log4j.properties
1 | log4j.rootCategory=WARN, console # 修改 |
复制文件到其他节点
1 | scp workers 192.168.1.7:/opt/spark/conf |
启动spark集群
一定要用”./path/start-all.sh “或”./start-all.sh”形式, 而不是绝对路径或直接文件执行
1 | cd /opt/hadoop/hadoop-3.2.3/etc/hadoop/ && stop-all.sh |
检查spark集群
集群连接测试
1 | cd /opt/spark |
总结
- StandAlone的原理?
Master和Worker角色以独立进程的形式存在,并组成Spark运行时环境(集群)
- Spark角色在StandAlone中的分布?
Master角色: Master进程, worker角色: worker进程, Driver角色: 以线程运行在Master中,Excutor角色:以线程运行在worker中
- Standalone如何提交Spark应用?
./bin/spark-submit –master spark://server:9777
- Job\Stage\Task的关系?
一个Spark运行程序会被分成多个子任务(Job)运行,每一个Job会分成多个阶段(Stage)来运行,每个Stage内会分出来多个线程(Task)来执行具体任务。