Spark总结

本文详细介绍了Spark的设计理念和优势,包括其作为并行计算引擎的高速性能,以及对比MapReduce的改进。文章重点讨论了Spark的性能优化,如减少网络传输开销、优化存储格式和内存管理,以及如何调整参数以提升整体性能。此外,还概述了Spark SQL的DataFrame特性和高效查询性能,以及Spark Streaming的实时处理能力,并提到了Kafka在流数据处理中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. Spark

  1. 转为大规模数据处理设计的快速通用的计算引擎
  2. 基于内存,开源,并行计算
  3. 消除了mapreduce大量IO操作和仅支持批处理的缺陷
  4. 通过RDD弹性分布式数据集,提供交互式查询功能
  5. 基于scala面向函数语言编写,便于操作RDD
  6. 可通过YARN管理分配资源,利用HDFS存储数据
  7. 使用DAG有向无环图执行引擎,内存/磁盘计算速度均比MR快
  8. 支持java,python,scala,R和spark shell多种语言编程
  9. 避免同时维护多个组件
  10. 丰富API和库,支持SQL MLib,GraphX,Streaming

1. spark性能优化

影响性能的主要因素
  1. 网络传输开销大
  2. 硬件资源利用率低
  3. 同一资源的复用率低
优化的方向
  1. 设置数据本地化,减少跨节点跨机架的网络传输开销
  2. 设置合适的存储格式,推荐orc,缩短查询时间
  3. 设置内存计算的大小和task数量,根据集群内存和磁盘大小调整
  4. 调整分区数量,提高查询性能
  5. 减少RDD的重复创建,同时尽可能复用已存在的RDD
  6. 减少使用shuffle类算子(reduceByKey,join,distinct,repartition)
  7. 选择可替代的最佳算子,reduceByKey替代groupByKey,mapPartitions替代map
  8. 避免数据倾斜,如map端Join,对数据深入理解的前提修改key调整reduce端的数据倾斜
  9. 提高spark最大的瓶颈-内存
优化的手段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值