您的位置:首页 > 财经 > 产业 > 企业网站优化甲薇g71679做同等效果下拉词_物流公司排名_厦门seo培训学校_加强网络暴力治理

企业网站优化甲薇g71679做同等效果下拉词_物流公司排名_厦门seo培训学校_加强网络暴力治理

2025/5/3 23:44:47 来源:https://blog.csdn.net/2401_85482551/article/details/147563376  浏览:    关键词:企业网站优化甲薇g71679做同等效果下拉词_物流公司排名_厦门seo培训学校_加强网络暴力治理
企业网站优化甲薇g71679做同等效果下拉词_物流公司排名_厦门seo培训学校_加强网络暴力治理

一、Spark 是什么

Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎,也可说是分布式内存迭代计算框架。

二、Spark 四大特点

速度快(内存计算)

易于使用

通用性强

运行方式多

三、与hadoop的核心差异

数据通信:Spark 基于内存,Hadoop 基于磁盘。

任务启动:Spark 用线程(快),Hadoop 用进程(慢)。

适用场景:Spark 适合迭代计算、交互式分析;Hadoop 适合大规模磁盘存储场景。

四、Spark 核心架构与部署模式

1. 运行架构

Master-Slave 模型:

Driver:负责任务调度、作业转换和状态跟踪(类似大脑)。

Executor:实际执行任务的工作节点,负责处理数据并缓存结果。

集群管理器:如 Standalone、YARN、Kubernetes,负责资源分配。

核心组件:DAG 调度器(拆分任务阶段)、任务调度器(分配任务到 Executor)。

2.部署模式

模式

特点

适用场景

Local

单节点运行,用于本地测试,无需集群环境

开发调试

Standalone

Spark 自带集群管理器,实现资源自调度,支持 Master-Worker 架构

轻量级集群,学习 / 测试

YARN

集成 Hadoop YARN 资源管理器,适合与 Hadoop 生态结合

生产环境,大数据处理

Kubernetes

基于容器编排,弹性扩缩容,适合云原生部署

大规模分布式生产环境

五、Spark Core:分布式计算基础

1. RDD(弹性分布式数据集)

核心特性:

弹性:支持内存 / 磁盘存储切换、容错恢复、动态分区。

分布式:数据分片存储在集群节点,支持并行计算。

不可变:通过转换(Transformation)生成新 RDD,保留操作 lineage(血缘关系)。

关键操作:

转换(Transformation):map、filter、reduceByKey、join(惰性执行,不立即计算)。

行动(Action):collect、count、saveAsTextFile(触发实际计算)。

依赖关系:

窄依赖:父 RDD 分区仅被一个子分区使用(如 map)。

宽依赖:父 RDD 分区被多个子分区使用(如 reduceByKey),触发 Shuffle。

2. 累加器与广播变量

累加器(Accumulator):分布式环境下的全局计数器,用于统计任务结果(如全局计数)。

广播变量(Broadcast Variable):将只读变量广播到所有 Executor,避免重复传输(如字典数据)。

3.行动算子

reduce:聚集 RDD 所有元素,先聚合分区内数据,再聚合分区间数据。

collect:在驱动程序中以数组形式返回数据集所有元素。

foreach:分布式遍历 RDD 元素并调用指定函数。

count:返回 RDD 中元素个数。

first:返回 RDD 中第一个元素。

take:返回 RDD 前 n 个元素组成的数组。

takeOrdered:返回 RDD 排序后的前 n 个元素组成的数组。

aggregate:分区数据通过初始值和分区内数据聚合,再和初始值进行分区间聚合

fold:折叠操作,是 aggregate 的简化版

countByKey:统计每种 key 的个数。

save 相关算子:将数据保存到不同格式文件

六、Spark SQL:结构化数据处理

1. 核心抽象

DataFrame:带 Schema 的二维表结构,支持 SQL 查询和 DSL 操作,底层为 Dataset[Row]。

Dataset:强类型数据集,结合 RDD 的灵活性和 SQL 的优化能力(如 Dataset[User])。

三者关系:

plaintext

RDD ↔ DataFrame ↔ Dataset 

(通过反射/编程方式转换,如 rdd.toDF()、df.as[User])

2. 数据操作

SQL 风格:注册临时表,使用 spark.sql("SELECT * FROM table") 执行查询。

DSL 风格:通过链式调用 df.filter($"age">18).groupBy("name").count() 实现逻辑。

数据源:支持 JSON、CSV、Parquet、JDBC(如 MySQL)、Hive 等,通用加载接口:

scala

spark.read.format("csv").option("header", "true").load("path")

七、Spark Streaming:实时流处理

1. 核心概念

DStream(离散化流):将实时流切割为多个时间片(如每秒一个批次),每个批次对应一个 RDD。

输入源:Kafka、Flume、TCP 套接字等,通过 socketTextStream 或 Kafka Direct API 读取数据。

DStream 本质是RDD 序列,每个时间区间数据对应一个 RDD。

2.特点:

易用性:支持 Java、Python、Scala 等语言,编程方式类似离线处理。

容错性:无需额外配置即可恢复丢失数据。

易整合性:可与 Spark 批处理结合,支持离线与实时处理统一代码。

3.关键操作

无状态转换:对每个批次独立处理(如实时 WordCount):

有状态转换:跨批次维护状态(如窗口聚合、updateStateByKey):

输出操作:将结果写入外部系统(如 MySQL、HDFS),通过 foreachRDD 实现。

八、Spark 生态与综合应用

1. 生态组件

MLlib:机器学习库,支持分类、回归、聚类等算法(如 LogisticRegression)。

GraphX:图计算框架,支持 Pregel 模型和图算法(如 PageRank)。

Structured Streaming:基于 DataFrame/Dataset 的流式处理,支持端到端 Exactly-Once 语义。

2. 典型应用场景

离线分析:使用 Spark Core/Spark SQL 处理批量数据(如日志分析、报表生成)。

实时分析:结合 Spark Streaming/Kafka 构建实时数据管道(如实时用户行为分析)。

机器学习:通过 MLlib 训练模型,结合 Spark SQL 处理特征数据。

图计算:利用 GraphX 分析社交网络、推荐系统中的关系数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com