- standalone是spark的资源调度服务;作用和yarn是一样的;
- standlone运行时的服务:
- master服务;主服务;管理整个资源调度;资源的申请需要通过master进行分配;类似于yarn里的ResourceManager;(只有一个,是单点故障;一旦master有故障整个服务不可用)
- woke服务 ; 从服务;根据master的分配创建资源空间;给计算任务使用;类似于yarn里面的nodemanager;(可以运行在多台服务器;)
安装部署:
所有集群都有安装python和anaconda;
先分发给其他两个节点:
分别在两个节点安装;
重新连接;出现(base)即可;表示成功;
vim ~/.condarc
将master的内容复制过来即可;
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
分别在两台上创建pyspark虚拟机;
conda create -n pyspark python=3.8
验证一下
conda activate pyspark
表示成功;
分别执行以下两点:
vim /etc/peofile
export SPARK_HOME=/opt/module/spark
export PYSPARK_PYTHON=/opt/module/anacond3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
vim .bashrc
export JAVA_HOME=/opt/module/jdk
export PYSPARK_PYTHON=/opt/module/anacond3/envs/pyspark/bin/python3.8
接下来修改spark的配置文件:
master节点:
cd /opt/module/spark/conf
vim workers.template
master
slave1
slave2
vim spark-env.sh
# 设置JAVA安装目录
JAVA_HOME=/export/server/jdk
## HAD00P软件配置文件目录,读取HDFS上文件和运行YARN集群HAD00P_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
## 指定spark老大Master的IP和提交任务的通信端口告知spark的master运行在哪个机器上第
export SPARK_MASTER_HOST=master
#告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
#告知spark master的 webui端囗
SPARK_MASTER_WEBUI_PORT=8080
# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker可用内存
SPARK_WORKER_MEMORY=1g
# worker的工作通讯地址
SPARK_WORKER_PORT=7078
#worker的webui地
SPARK_WORKER_WEBUI_PORT=8081
# 设置历史服务器
#配置的意思是 将spark程序运行的历史日志 存到ndfs的/sparklog文件夹中
SPARK_HISTORY OPTS="-
Dspark.history.fs.logDirectory=hdfs://master:8020/sparklog/-Dspark.history.fs.cleaner.enabled=true"
hadoop fs -ls /
查看有没有sparklog;没有就创建:
hadoop fs -mkdir /sparklog
修改权限:
hadoop fs -chmod 777 /sparklog
mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
写入:
# 开启spark的日期记录功能
spark.eventlog.enabled true
#设置spark日志记录路径
spark.eventlog.dir hdfs://master:8020/sparklog/
#设置spark日志是否启动压缩
spark.eventlog.compress true
mv log4j.properties.template log4j.properties
vim log4j.properties
把info改为warn;
然后分发即可;
scp -r /opt/module/spark/ slave1:/opt/module/
scp -r /opt/module/spark/ slave2:/opt/module/
-------------
启动spark的历史服务器:
sbin/start-history-server.sh
jobhistoryserver出不来可以执行如下:
mapred --daemon start historyserver