spark规划化管理 spark性能优化指南_数据倾斜

Hadoop再火,火得过Spark吗?今天我们继续关于Spark的精华问答吧。




spark规划化管理 spark性能优化指南_SQL_02

1


Q:影响性能的主要因素是什么?


A:网络传输开销大

硬件资源利用率低

同一资源的复用率低




spark规划化管理 spark性能优化指南_SQL_02

2


Q:优化的方向有哪些?


A:设置数据本地化,减少跨节点跨机架的网络传输开销

设置合适的存储格式,推荐orc,缩短查询时间

设置内存计算的大小和task数量,根据集群内存和磁盘大小调整

调整分区数量,提高查询性能

减少RDD的重复创建,同时尽可能复用已存在的RDD

减少使用shuffle类算子(reduceByKey,join,distinct,repartition)

选择可替代的最佳算子,reduceByKey替代groupByKey,mapPartitions替代map

避免数据倾斜,如map端Join,对数据深入理解的前提修改key调整reduce端的数据倾斜

提高spark最大的瓶颈-内存



spark规划化管理 spark性能优化指南_SQL_02

3


Q优化的手段


A:调优参数虽名目多样,但最终目的是提高CPU利用率,降低带宽IO,提高缓存命中率,减少数据落盘。 (以下参数主要用于Spark Thriftserver,仅供参考)

spark规划化管理 spark性能优化指南_SQL_05




spark规划化管理 spark性能优化指南_SQL_02

4


Q:Spark生态圈介绍


A:Spark力图整合机器学习(MLib)、图算法(GraphX)、流式计算(Spark Streaming)和数据仓库(Spark SQL)等领域,通过计算引擎Spark,弹性分布式数据集(RDD),架构出一个新的大数据应用平台。


    Spark生态圈以HDFS、S3、Techyon为底层存储引擎,以Yarn、Mesos和Standlone作为资源调度引擎;使用Spark,可以实现MapReduce应用;基于Spark,Spark SQL可以实现即席查询,Spark Streaming可以处理实时应用,MLib可以实现机器学习算法,GraphX可以实现图计算,SparkR可以实现复杂数学计算。

spark规划化管理 spark性能优化指南_SQL_07




spark规划化管理 spark性能优化指南_SQL_02

5


Q:Spark SQL


A:基于HiveQL与Spark交互的API接口,将一个数据库表看作一个RDD进行操作

数据类型为DataFrame,支持结构化的数据文件,Hive表和已存在的RDD

兼容性好,支持nosql数据库

通过内存列存储技术和字节码生成技术实现空间占用量,读取吞吐率和SQL表达式的优化,查询性能高


spark规划化管理 spark性能优化指南_SQL_09