standalone环境部署
1.standalone架构
standalone是完整的spark运行环境,其中:Master角色以Master进程存在,Worker角色以Woker进程存在,Driver角色在运行时存在Master进程内,Executeor运行在Worker进程内
standalone集群在进程上主要由3类进程:
- 主节点master进程
- 从节点Workers节点
- 历史服务器HistoryServer进程
spark Application运行完成以后,保存事件日志数据到HDFS,启动HistoryServer可以查看应用运行相关信息
2.安装standalone环境
1. 安装Python(Anaconda)
- 上传: 资料中提供的
Anaconda3-2021.05-Linux-x86_64.sh
文件到Linux服务器上 - 安装执行命令:sh ./Anaconda3-2021.05-Linux-x86_64.sh
- 退出终端,然后在进入终端,前面就会出现:(base) [root@node2 ~]#
- 配置国内数据源
vim ~/.condarc
将下面的数据填写到这个文件中
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
- 创建虚拟环境
conda create -n pyspark python=3.8
- 切换到虚拟环境
conda activate pyspark
- 将安装包发送到另一台服务器上
scp -r Anaconda3-2021.05-Linux-x86_64.sh node3:`pwd`/
- 通过克隆虚拟器,修改主机名
hostnamectl set-hostname node1
2.spark安装
- 上传spark-3.2.0-bin-hadoop3.2.tgz文件到linux上
- 解压文件
tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/
- 由于spark目录名称很长, 给其一个软链接
ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark
3.配置环境变量
vim /etc/profile
export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
3台机器分别配置
vim ~/.bashrc
export JAVA_HOME=/export/server/jdk
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
3.测试
1.启动spark
cd /export/server/spark/bin
./pyspark
2.计算
sc.parallelize([1,2,3,4,5]).map(lambda x:x*10).collect()
Spark on yarn模式
1.spark on yarn本质
Driver可以运行在容器中,也可以在spark提交客户端上
2.配置spark on yarn环境
打开spark-env.sh文件
vim spark/conf/spark-env.sh
添加下面的内容
## HADOOP软件配置文件目录,读取HDFS上的文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/haddop/etc/hadoop
注意:hadoop集群和yarn集群要启动
启动spark on yarn集群:
bin/pyspark --master yarn
3.spark on yarn运行模式
spark on yarn有两种模式:cluster和client两种模式
cluster模式 | client模式 | |
---|---|---|
Driver运行位置 | YARN容器内 | 客户端进程内 |
通讯效率 | 高 | 低于cluster模式 |
日志查看 | 日志输出在YARN容器内,查看不方便 | 日志输出在客户端标准输出流内,查看方便 |
生产可用 | 推荐 | 不推荐 |
稳定性 | 稳定 | 不稳定 |
运行命令:
# 默认就是这种模式,再添加一些性能参数
bin/spark-submit --master yarn --deploy-mode client --driver-memory 512m --executor-memory 512m --num-executors 3 --total-executor-cores 3 /export/server/spark/examples/src/main/python/pi.py 100