节点配置
- Node-1:Master(HDFS\YARN\Spark)+ Worker(HDFS\YARN\Spark)
- Node-2:Worker(HDFS\YARN\Spark)
- Node-3:Worker(HDFS\YARN\Spark) + Hive
工作原理
本质:启动一个JVM Process进程(一个进程里面有多个线程),执行任务Task(线程)
- 资源管理
- Master:Local进程本身
- Worker:Local进程本身
- 任务执行
- Driver:Local进程本身
- Executor:不存在,没有独立的Executor角色,由Local进程(也就是Driver)内的线程提供计算能力
PS:
- Driver也算一种特殊的Executor
- 只不过多数时候,我们将Executor当做纯Worker对待,
- 这样和Driver好区分(一类是管理 一类是工人)
注意: Local模式只能运行一个Spark程序, 如果执行多个Spark程序, 那就是由多个相互独立的Local进程在执行
工具下载
- JDK 1.8
- Python 3.8
- Hadoop 3.0
- Spark 3.2.0
安装配置
# 解压Spark安装包(-C 指定解压后的路径)
tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /hadoop/software/
# 修改文件夹名
mv spark-3.2.0-bin-hadoop3.2 spark
############################### 修改环境变量 ############################################
- SPARK_HOME: 表示Spark安装路径在哪里
- PYSPARK_PYTHON: 表示Spark想运行Python程序, 那么去哪里找python执行器
- JAVA_HOME: 告知Spark Java在哪里
- HADOOP_CONF_DIR: 告知Spark Hadoop的配置文件在哪里
- HADOOP_HOME: 告知Spark Hadoop安装在哪里
# 修改profile
vi /etc/profile
# java
export JAVA_HOME=/hadoop/software/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# hadoop
export HADOOP_HOME=/hadoop/software/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# spark
export SPARK_HOME=/hadoop/software/spark
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PYSPARK_PYTHON=/hadoop/software/anaconda3/envs/pyspark/bin/python3.8 # 虚拟环境中的Python路径
# 修改bashrc
vi ~/.bashrc
# 追加环境变量
export JAVA_HOME=/hadoop/software/jdk1.8.0_241
export PYSPARK_PYTHON=/hadoop/software/anaconda3/envs/pyspark/bin/python3.8
############################### 安装Anaconda ###########################################
# 执行安装脚本
sh ./Anaconda3-2021.05-Linux-x86_64.sh
> yes(是否开始安装)
> (空格跳过)
> /hadoop/software/anaconda3/(安装目录)
> yes(初始化anaconda)
# 安装完成后,先退出,然后重新连接Linux
exit
############################### 修改Anaconda源 #########################################
# 如果安装好后,没有出现base,创建下面这个文件
vi ~/.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
############################### 配置虚拟环境 #########################################
# 创建虚拟环境
/hadoop/software/anaconda3/bin/conda create -n pyspark python=3.8
# 切换虚拟环境
conda activate pyspark
##########################################################################################
# 进入spark的bin目录
cd /hadoop/software/spark/bin
# 执行pyspark
./py spark
# 执行代码
sc.parallelize([1,2,3,4,5]).map(lambda x:x+1).collect()
> [2, 3, 4, 5, 6]
总结
- Local模式的运行原理?
- Local模式就是以一个独立进程配合其内部线程来提供完成Spark运行时环境
- Local模式可以通过
spark-shell/pyspark/spark-submit
等来开启
- bin/pyspark是什么程序?
- 是一个交互式的解释器执行环境,环境启动后就得到了一个Local Spark环境
- 可以运行Python代码去进行Spark计算,类似Python自带解释器
- Spark的4040端口是什么?
- Spark的任务在运行后,会在Driver所在机器绑定到4040端口
- 提供当前任务的监控页面供查看
评论区