" name="sm-site-verification"/>
侧边栏壁纸
博主头像
PySuper博主等级

千里之行,始于足下

  • 累计撰写 203 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Spark部署 之 Local

PySuper
2022-03-17 / 0 评论 / 1 点赞 / 21 阅读 / 5199 字
温馨提示:
所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

节点配置

  • 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进程在执行

工具下载

安装配置

# 解压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端口
    • 提供当前任务的监控页面供查看

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区