• Spark入门


    目录

    1. Spark入门: 概述+历史+概述
    2. SparkCore:RDD
    3. SparkSQL:
    4. SparkStreaming
    5. Spark内核调优

    Spark概述

    回顾: Hadoop = HDFS存储 + MR分析计算 + YARN调度
    Hadoop的MR计算中的shuffle需要落盘,速度不够快。
    Spark是一种基于内存的分析计算引擎。

    历史

    2009诞生于加州伯克利分校,项目采用scala编写。
    2010年开源。
    2013年6月成为Apache孵化项目,将资源和任务调度分开。
    2014年2月成为Apache顶级项目。

    两种模式

    1. standalone独立部署模式:不可以更换为MR来计算
    2. yarn模式:可以更换为MR来分析计算

    Hadoop和Spark的对比

    1. Hadoop MR框架: 计算过程中Map和Reduce之间的shuffle过程需要落盘,reduce结束后也需要落盘。
    2. Spark RDD框架:会主动考虑前后数据的逻辑性,只在必要时进行shuffle落盘。适合迭代式计算,图形计算。Spark支持优化,避免了一些重复冗余的计算操作,是基于懒加载机制的框架。

    Spark模块和特点

    模块: SparkSQL + SparkCore +Yarn
    特点:

    1. 快:基于内存运算比Hadoop MR快100倍以上, 有很强的自适应优化,帮你自动计算出最合适的任务资源调度方案。
    2. 易用:支持java, Python, Scala的API
    3. 通用:提供了统一的解决方案,支持SQL、实时流处理
    4. 兼容性:调度和计算分离,支持其他调度器,比如yarn调度器

    安装部署

    本地模式

    1. 提交Spark任务
    bin/spark-submit \ # 提交任务
    --class org.apache.spark.examples.SparkPi \
    --master local[2] \ # 运行模式
    # Spark案例任务,求PI
    ./examples/jars/spark-examples_2.12-3.1.1.jar \   
    10  # 任务跑10次,取平均值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    –master : 表示运行模式,默认是local[], 中括号里面表示CPU核数, 表示当前机器的全部CPU。

    1. hadoop102:4040 Spark任务运行查看界面,建议将10替换为1000,任务结束后无法进入。可以看到计算过程的有向无环图。

    YARN模式

    1. 关闭虚拟机
    2. 重新解压spark,命名为spark-yarn目录
    3. 关闭物理和虚拟的内存检查
    4. 修改spark-env.sh配置文件的YARN_CONF_DIR,告诉spark,yarn配置文件在哪里。
    5. hadoop103:8088 通过YARN查看任务执行情况。
    6. 配置历史服务
      • 修改spark-defaults.conf, 配置日志存储路径
      • 修改spark-env.sh, 添加如下配置
    export SPARK_HISTORY_OPTS="
    -Dspark.history.ui.port=18080 
    -Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory 
    -Dspark.history.retainedApplications=30"
    
    • 1
    • 2
    • 3
    • 4
    1. 创建历史服务器的目录
    2. sbin/start-history-server.sh,启动历史服务器HistoryServer
    3. 再次提交计算PI的任务,使用Hadoop102:18080查看任务DAG图解,查看有多少个阶段和计算过程。主要查看executor界面,查看任务申请了多少个执行器,和执行器的运行时间。
      10.配置历史日志,为了能够通过YARN网页跳转到Spark历史日志网页中。在spark-defaults.conf添加如下信息:
    spark.yarn.historyServer.address=hadoop102:18080
    spark.history.ui.port=18080
    
    • 1
    • 2

    运行流程

    Spark yarn 也有两种模式:

    1. 客户端模式:初始化,任务的切分都在本地执行。适合内网执行,大数据一般都是内网运行,故一般是客户端模式,任务结果就在当前客户端可以看到。
    2. 集群模式:初始化,任务的切分在集群的AM中执行,适合外网执行,任务结果需要到YARN中才能查看到。
  • 相关阅读:
    失业登记对养老保险是否有影响
    【小航的算法日记】贪心算法
    原子核内的相互作用
    电路分析中的函数介绍
    InstantID Zero-shot Identity-Preserving Generation in Seconds
    Windows修改中文用户名为英文
    在 Ubuntu 16.04 上从0到1教你如何移植osqp
    Web网上订购系统开题报告详解
    3. 一级缓存解析
    VM虚拟机连接NAT虚拟网络并上网的总结
  • 原文地址:https://blog.csdn.net/qq_44273739/article/details/133821174