学习spark总结
一、Spark Core
• 核心功能:基于内存计算的分布式计算框架,提供RDD弹性分布式数据集,支持转换(如map、filter)和动作(如collect、save)操作。
• 关键特性:高容错性(Lineage机制)、高效内存管理、支持多种部署模式(本地/集群)。
二、Spark SQL
• 数据处理:支持结构化数据(JSON/Parquet等)处理,通过DataFrame/Dataset API简化操作。
• 组件集成:可与Hive兼容,通过Spark SQL查询Hive表,支持ANSI SQL语法。
• 性能优势:优化器(Catalyst)自动优化执行计划,提升查询效率。
三、Spark Streaming
• 流处理模型:基于微批处理(Micro-Batch),将实时流分割为小批次处理,支持Kafka、Flume等数据源。
• 关键概念:DStream(离散流)、窗口操作(Window)、状态管理(如updateStateByKey)。
• 容错机制:通过检查点(Checkpoint)确保故障恢复时的 Exactly-Once 语义。
四、Kafka 集成
• 数据源:作为分布式消息队列,为Spark Streaming提供高吞吐量、持久化的实时数据。
• 消费模式:基于Direct API(非Receiver方式),直接从Kafka分区读取数据,保证高效且精准一次消费。
• 集成场景:常用于日志采集、实时监控等需要高可靠性的流处理场景。
五、Flume 集成
• 数据采集:轻量级日志收集框架,支持多源数据(如文件、网络端口)采集,汇聚到HDFS/Spark等系统。
• 与Spark结合:Flume可将数据写入Kafka,再由Spark Streaming消费;或直接通过Flume Sink将数据发送至Spark Streaming。
• 特点:配置灵活、可靠性高,适合构建复杂的日志采集管道。