• 走进Spark


    • 什么是Spark
      • 是一个基于内存的,用于大规模数据处理(离线计算、实时计算、快速查询(交互式查询))的统一分析引擎,因为是基于内存的所以可以更快的完成任务
        • 离线计算:离线计算一般存储在HDFS中使用MapReduce或Hive处理,离线计算启动进程,处理完成后销毁进程
        • 实时计算:实时计算一般存储在消息队列中,使用Spark(DStream)或者Storm、Flink等其他实时计算框架,进程7*24小时运行都在
    • 应用场景
      • 大规模数据处理和分析
      • 流处理 : Spark Streaming可以处理实时数据流,并将其转换为可供分析和存储的批处理数据。
      • 机器学习 :Spark提供了机器学习库,可以支持各种机器学习算法和模型训练。
    • 特点
      • 快: Spark 计算速度是 MapReduce 计算速度的10-100倍
      • 易用: MapReduce 支持1种计算模型,Spark 支持更多的计算模型
      • 通用: Spark 能够进行离线计算、交互式查询(快速查询)、实时计算、机器学习、图计算
      • 兼容性:Spark 支持大数据中的 Yarn 调度,支持 mesos。可以处理 hadoop 计算的数据。
    • 架构组件
      • Spark Core: Spark 核心功能均由 Spark Core 模块提供,是 Spark 运行的基础。
      • Spark SQL:Spark 的 SQL 查询和分析引擎,它可以将结构化数据转换为 RDD 数据集,然后使用 Spark 的优化算法来执行查询。
      • Spark Streaming:Spark 的流处理引擎,它可以处理实时数据流并将其转换为 RDD 数据集,然后使用 Spark 的优化算法来执行查询。
      • Spark MLlib:机器学习库,它提供了一组 API,用于训练和部署机器学习模型。
      • Spark GraphX:的图计算库,它提供了一组 API,用于处理图数据
    • 工作原理
      • 应用程序初始化:Spark 应用程序首先在 driver 中初始化 SparkContext
      • 数据分区:Spark 将数据分成多个分区,然后在集群中的不同节点上并行处理这些分区。
      • 任务调度:Spark 的任务调度器将任务分配给可用的执行器。
      • 数据传输:Spark 将数据传输到执行器以进行处理。
      • 数据处理:执行器使用 RDD API 对数据进行处理。
      • 结果返回:执行器将结果返回到驱动程序。
    • 基本概念
      • RDD:弹性分布式数据集,是一种容错的、可以被并行操作的元素集合,是 Spark 对所有数据处理的一种基本抽象。
      • DAG:有向无环图,是 Spark 中最重要的一个概念之一,它描述了数据的依赖关系。
      • Transformation:转换操作,是 Spark 中最常用的一种操作,包括 map、filter、flatmap 等。
      • Action:动作操作,是 Spark 中最基本的一种操作,包括 count、collect、saveAsTextFile 等。
    • 常踩的坑
      • SparkSQL查询优化:SparkSQL是Spark的一个模块,它提供了一种标准化的查询语言,可以轻松操作存储在各种存储系统中的数据。但是,如果查询优化不当,也会影响程序的运行效率
      • 整合Hive报错: 解决方法是在spark-submit命令中添加上hive-site.xml配置文件。
      • 数据倾斜问题: Spark SQL 的执行过程中,由于某些 key 的数据量过大,导致这些 key 对应的 partition 中的数据量过大,从而使得这些 partition 的计算时间过长,从而影响整个查询的执行效率
        • 分区键的设计
        • 分桶
        • 哈希算法和随机数解决
      • Spark SQL 数据类型不匹配
  • 相关阅读:
    ros_serial库
    高等教育学:技能的形成
    2023高教社杯数学建模E题思路代码 - 黄河水沙监测数据分析
    Flutter利用GridView创建网格布局实现优美布局
    java基于springboot+vue的高校教师人事管理系统 elementui
    Python编程技巧 – 对象和类
    Springboot项目RestController中函数参数注解使用
    Mysql与Oracle的13点区别
    Bored Ape Yacht Club 生态系统指南
    Helm Deploy Online Rancher Demo
  • 原文地址:https://blog.csdn.net/qq_36204764/article/details/133806097