• Spark Local模式的基本原理及部署


    基本原理

    • Local模式的本质就是启动一个JVM Process进程(里面有多个进程),执行任务Task

      • Local模式可以限制模拟Spark环境的线程数量,即Local[N] 或 Local[*]。
      • N表示N个线程,每个线程拥有一个cpu核,默认为1,通常几个核指定几个线程。
      • 如果是local[*],就是按照CPU最多的cores设置线程数。
    • Local角色分布:

      • 资源管理
        • Master:Local进程本身
        • Worker:Local进程本身
      • 任务执行:
        • Driver:Local进程本身
        • Executor:不存在,没有独立的Executor角色, 由Local进程(也就是Driver)内的线程提供计算能力。

    安装部署

    1. 解压安装包
      安装包在此链接下载
    tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/
    mv spark-3.2.0-bin-hadoop3.2/ spark-3.2.0
    
    • 1
    • 2
    1. 设置环境变量
    • SPARK_HOME: 表示Spark安装路径在哪里
    • PYSPARK_PYTHON: 表示Spark想运行Python程序, 那么去哪里找python执行器
    • JAVA_HOME: 告知Spark Java在哪里
    • HADOOP_CONF_DIR: 告知Spark Hadoop的配置文件在哪里
    • HADOOP_HOME: 告知Spark Hadoop安装在哪里
    vim /etc/profile
    #SPARK_HOME
    export HADOOP_HOME=/export/server/spark-3.2.0
    #pyspark虚拟环境
    export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    
    source /etc/profile
    #同样也需要在~/.bashrc上配置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 启动pyspark
    
    cd /export/server/spark-3.2.0/bin
    ./pyspark
    #所有进程执行
    ./pyspark --master local[*]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    4. 测试数据

    sc.parallelize([1,2,3,4,5]).map(lambda x: 2 * x + 1).collect()
    #输出
    [3, 5, 7, 9, 11]
    
    • 1
    • 2
    • 3
    1. 查看运行监控页面
      输入地址:http://node1(主机的ip):4040

    在这里插入图片描述
    在这里插入图片描述
    6. Scala环境测试

    ./spark-shell
    sc.parallelize(Array(1,2,3,4,5)).map(x => 2*x + 1).collect()
    #输出
    res0: Array[Int] = Array(3, 5, 7, 9, 11)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    7. spark-submit提交代码测试

     ./spark-submit --master local[*] /export/server/spark-3.2.0/examples/src/main/python/pi.py 10
    
    • 1

    在这里插入图片描述

    总结

    • Spark 4040端口表示spark的 job执行监控页面。如果在local模式下同时开启spark-shell和spark-shell两个环境,后面开启spark会绑定在4041端口上(端口顺延)。
  • 相关阅读:
    学会倾听,创建良性的交流通道
    信号驱动io
    python判断是否到了文件尾
    硬盘的简单介绍
    索尼cfa卡格式化了怎么恢复数据?这2种方法请收好
    运算符优先级
    sql concat()函数
    英语——分享篇——每日200词——1601-1800
    简陋的nuxt3学习笔记
    【无标题】
  • 原文地址:https://blog.csdn.net/sinat_31854967/article/details/127681374