Spark部署模式与技术栈解析

4 下载量 45 浏览量 更新于2024-08-29 收藏 204KB PDF 举报
"Spark面试知识详解" Apache Spark作为一款强大的大数据处理框架,其核心特性在于快速和通用性。在面试中,理解Spark的部署模式、技术栈以及组件功能是至关重要的。 1. **Spark部署模式** - **本地模式**:适合于开发和调试,有三种类型:`local`(单Executor),`local[k]`(k个Executor),`local[*]`(与CPU核心数相同数量的Executor)。 - **Standalone模式**:Spark自包含的分布式集群,Spark自身负责资源管理和任务监控,是其他模式的基础。 - **Spark on YARN模式**:在Hadoop YARN上运行Spark,资源和任务调度由YARN管理,提供cluster和client两种运行模式,前者适合生产环境,后者适合调试。 - **Spark on Mesos模式**:支持粗粒度和细粒度资源分配,细粒度模式在Spark 2.0后逐渐被弃用。 2. **Spark技术栈组件** - **Spark Core**:Spark的核心,包括DAG(有向无环图)、弹性分布式数据集(RDD)、血缘关系(Lineage)、缓存(Cache)和广播变量(Broadcast)等功能,适用于基础数据处理任务。 - **Spark Streaming**:处理实时数据流,通过微批处理实现高吞吐和容错,适用于实时监控和分析场景。 - **Spark SQL**:结合了SQL查询和DataFrame/Dataset API,支持与传统数据库交互,适用于数据仓库和数据分析。 - **MLlib (Machine Learning Library)**:提供了广泛的机器学习算法和工具,简化了机器学习流程,适用于数据挖掘和预测模型构建。 - **GraphX**:用于图计算,支持图操作和图并行计算,适用于社交网络分析、推荐系统等领域。 3. **Spark组件角色** - **Master**:管理整个Spark集群,负责分配资源和任务调度,不直接参与计算。 - **Worker**:执行计算任务的工作节点,每个Worker可包含多个Executor,Executor是实际执行任务的单元。 - **Executor**:在Worker节点上运行,负责执行Task,持有RDD缓存,是数据处理的执行者。 - **Driver**:提交Spark作业的应用程序进程,创建SparkContext并与Master通信,管理作业的生命周期。 在面试中,还需要关注Spark的内存管理(如内存参数设置、内存碎片和磁盘碎片的处理)、RDD的转换和行动操作、Stage划分、Shuffle过程以及如何优化性能等方面的知识。理解这些概念和机制对于解决实际问题和提高Spark应用效率至关重要。