生命无罪,健康万岁,我是laity。
以下操作都是基于你已经把hadoop集群搭建好了的情况下
Spark的运行模式
- 上面的部署安装属于(本地模式)Local部署
Spark的架构角色
- 个人认为很重要 - 方便理解Spark和YARN
Python环境部署
- 我们用的python环境是
Anaconda3
# 1.将`Anaconda3-2021.05-Linux-x86_64.sh`文件到Linux服务器上
# 2.安装到 /opt/laityInstall 下 sh ./Anaconda3-2021.05-Linux-x86_64.sh 执行安装
# 3.配置国内镜像 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
# 4.创建虚拟环境 pyspark, 基于Python 3.8
conda create -n pyspark python=3.8
# 切换到虚拟环境内
conda activate pyspark
SparkLocal
部署
Local 下的角色分布:
资源管理:
Master:Local进程本身
Worker:Local进程本身
任务执行:
Driver:Local进程本身
Executor:不存在,没有独立的Executor角色, 由Local进程(也就是Driver)内的线程提供计算能力
PS: Driver也算一种特殊的Executor, 只不过多数时候, 我们将Executor当做纯Worker对待, 这样和Driver好区分(一类是管理 一类是工人)
注意: Local模式只能运行一个Spark程序, 如果执行多个Spark程序, 那就是由多个相互独立的Local进程在执行
- Local运行模式
# 1.将spark-3.2.0-bin-hadoop3.2.tgz 上传到Linux服务器上
# 2.解压到 /opt/laityIstall 下
# 3.由于spark目录名称很长, 给其一个软链接:
ln -s /opt/laityIstall/spark-3.2.0-bin-hadoop3.2 /opt/laityInstall/spark
# 4.Spark运行所需要的环境变量 vim /etc/profile.d/my_env.sh
# vim /etc/profile.d/my_env.sh
# java jdk
export JAVA_HOME=/opt/laityInstall/jdk
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/laityInstall/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# Spark
export SPARK_HOME=/opt/laityInstall/spark
# Python Spark想运行Python程序, 那么去哪里找python执行器
export PYSPARK_PYTHON=/opt/laityInstall/anaconda3/envs/pyspark/bin/python
# Hadoop 配置文件地址
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 5.PYSPARK_PYTHON和 JAVA_HOME 需要同样配置在: `/root/.bashrc`中
export JAVA_HOME=/opt/laityInstall/jdk
export PYSPARK_PYTHON=/opt/laityInstall/anaconda3/envs/pyspark/bin/python
测试运行
# cd /opt/laityIstall/spark/bin/
# ./pyspark -- 这个是交互式的python运行环境的 可以运行Python代码去进行Spark计算
# ./spark-shell -- sgala运行环境的
# ./Rspark -- R语言的运行环境的
# 访问以上交互式模式可以通过访问 Itlaity101:4040 访问网页端
# ./spark-submit -- 指定文件运行的;需要指定参数