没有合适的资源?快使用搜索试试~ 我知道了~
《Spark 调优攻略上册》是整合互联⽹优质的Blog与PPT形成的攻略,它主要对于企业级⼤规模数据计算引擎Spark多维度优化策略。本次整理不单单是Apache spark还涵盖了Data Lake和阿⾥云EMR智能团队研发的Jindo-Spark是如何基于Apache spark进⾏多维优化及实现原理,让读者能够知其然且知其所以然。
资源推荐
资源详情
资源评论
SPARK 调优攻略(上册)
⼀、WHAT IS APACHE SPARK™ ?
Apache Spark™ 是⼀个多语⾔引擎,⽤于在单节点机器或集群上执⾏数据⼯程、数据科
学和机器学习。
1.1 Apache Spark 起源
Spark由Matei于2009年在旧⾦⼭湾区的加州⼤学伯克利分校AMP 实验室 (Algorithms,
Machines, and People Lab)开发,可⽤来构建⼤型的、低延迟的数据分析应⽤程序。
Spark ⽣态系统也称为DBAS,是UCB Berkeley AMP实验室开发的,⼒图在算法
(Algorithms)、机器(Machines)、⼈(People)三者之间通过⼤规模集成来展现⼀个
⼤数据应⽤平台。
简介:整理⼈李亚鹏,多年在⼤规模分布式计算领域深耕。
《Spark 调优攻略上册》是整合互联⽹优质的Blog与PPT形成的攻略,它主要对于
企业级⼤规模数据计算引擎Spark多维度优化策略。本次整理不单单是Apache spark
还涵盖了Data Lake和阿⾥云EMR智能团队研发的Jindo-Spark是如何基于Apache
spark进⾏多维优化及实现原理,让读者能够知其然且知其所以然。
注:旧⾦⼭湾区的加州⼤学伯克利分校,简称:UCB,教授拿了诺⻉尔奖,学校只奖励
⼀个停⻋位表示表示,并不歌迷理解的波⼠顿伯克利⾳乐学院,总之Berkeley ≠
Berkeley。
1.2 Apache Spark 历程
2009年孵化于UCB Berkeley AMP 实验室;
2010年通过Berkeley Software Distribution许可协议开源发布;
2013年捐赠给Apache基⾦会并切换开源协议到切换许可协议⾄Apache2.0;
2014年2⽉,Spark 成为 Apache 的顶级项⽬;
2014年11⽉, Spark的商业公司Databricks团队使⽤Spark刷新数据排序世界记录;
2015 年⾄今,Spark 变得愈发⽕爆,⼤量的国内公司开始重点部署或者使⽤Spark。
1.3 Apache Spark 成就
Hadoop 之⽗Doug Cutting 指出:Use of MapReduce engine for Big Data
projects will decline, replaced by Apache Spark (⼤数据项⽬的MapReduce 引擎
的使⽤将下降,由Apache Spark 取代),个⼈观念:即便如此⼆者各⾃存在的⽬的是
不同的,只是部分场景被取代,并不会全部取代;
Hadoop 商业发⾏版本的市场⼤⼚Cloudera 、HortonWorks 纷纷转投Spark,并把
Spark作为⼤数据解决⽅案的⾸选和核⼼计算引擎;
2014 年的如此Benchmark 测试中, Spark 秒杀Hadoop ,在使⽤10/1计算资源的情
况下,相同Data sort, Spark ⽐Map Reduce 快3 倍! 在没有官⽅PB 排序对⽐的情
况下,⾸次将Spark 推到了IPB 数据(⼗万亿条记录) 的排序,在使⽤190 个节点的情况
下,⼯作负载在4h内完成, 同样远超Yahoo之前使⽤3800 台主机耗时16h的记录;
2015年6⽉, Spark 最⼤的集群来⾃Tencent 8000个节点, 单个Job 最⼤分别是
Aliyun and Databricks–1PB ,同时,Spark的Contributor ⽐2014 年涨了3 倍,达到
730 ⼈:总代码⾏数也⽐2014 年涨了2 倍多,达到40 万⾏;
2016 年,国际著名Sort Benchmark全球Data sort⼤赛中,由南京⼤学计算机科学与
技术系PASA ⼤数据实验室、阿⾥云和Databricks 公司组成的参赛因队NADSort,以
144 $ 的成本完成lOOTB 标准数据集的排序处理,创下了每TB 数据排序1.44美元成本的
最新世界纪录,⽐2014 年夺得冠军的加州⼤学圣地亚哥分校TritonSort团队每TB 数据
4.51美元的成本降低了近70%,⽽这次⽐赛依旧使⽤Apache Spark ⼤数据计算平台,
在⼤规模并⾏排序算法以及Spark 系统底层进⾏了⼤量的优化,以尽可能提⾼排序计算
性能并降低存储资源开销,确保最终赢得⽐赛。
1.4 Apache Spark 核⼼
Spark Core:
Spark Core 中提供了 Spark 最基础与最核⼼的功能,Spark 其他的功能如:Spark SQL,
Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进⾏扩展的。
Spark SQL:
Spark SQL是Apache Spark⽤于处理结构化数据的模块,将SQL查询与Spark程序⽆缝混
合,Spark SQL允许您使⽤SQL或熟悉的DataFrame API查询Spark程序中的结构化数据。在
Java、Scala、Python和R中可⽤。
Spark Streaming:
Spark Streaming 是 Spark 平台上针对实时数据进⾏流式计算的组件,提供了丰富的处理
数据流的 API。
Spark MLlib:
MLlib 是 Spark 提供的⼀个机器学习算法库。MLlib 不仅提供了模型评估、数据导⼊等额外
的功能,还提供了⼀些更底层的机器学习原语。
Spark GraphX:
GraphX 是 Spark ⾯向图计算提供的框架与算法库。
1.5 Apache Spark 对⽐ MapReduce
Spark 是通过借鉴Hadoop MapReduce思想发展⽽来的,继承了分布式计算的优点,并
且改正了MapReduce的部分缺陷,具体体现分为以下⼏个⽅⾯:
磁盘
Hadoop每次shuffle操作后,必须写到磁盘,⽽Spark在shuffle后不⼀定落盘,可以
cache到内存中,以便迭代时使⽤。如果操作复杂,很多的shufle操作,那么Hadoop的读
写IO时间会⼤⼤增加;
算⼦
Hadoop的shuffle操作⼀定连着完整的MapReduce操作,冗余繁琐。⽽Spark基于RDD
提供了丰富的算⼦操作,且reduce操作产⽣shuffle数据,可以缓存在内存中。
JVM开销
Spark Task的启动时间快。Spark采⽤Fork线程的⽅式,Spark每次MapReduce操作是基
于线程的,只在启动。⽽Hadoop采⽤创建新的进程的⽅式,启动⼀个Task便会启动⼀次
JVM。Spark的Executor是启动⼀次JVM,内存的Task操作是在线程池内线程复⽤的。每次
启动JVM的时间可能就需要⼏秒甚⾄⼗⼏秒,那么当Task多了,这个时间Hadoop不知道⽐
Spark慢了多少。
申请总资源 估算公式 结果
执⾏端总内存 num-executors 100 * executor-memory 16 1.6太字节(TB)
执⾏端总核⼼ num-executors 100 * executor-cores 4 400 vcore
客户端总内存 driver-memory 16G 16吉字节
客户端总核⼼ driver-cores 4 4 vcore
任务总并⾏度 spark.default.parallelism 1200 1200并⾏
执⾏端总堆外 spark.yarn.executor.memoryOverhead 4吉字节
客户端总堆外 spark.yarn.driver.memoryOverhead 2吉字节
⼆、SPARK 多维优化
2.1 Spark submit case
资源调优是Spark性能调优的第⼀步,就是为任务分配更多的资源,在⼀定范围内,增加
资源的分配与性能的提升是成正⽐的,实现了最优的资源配置后,在此基础上再考虑进⾏后
⾯论述的性能调优策略。
Spark submit case
针对以上spark-submit设置的参数,进⾏本次Job的资源的评估,如下:
bin/spark-submit \
--class com.xxx.xxx.Analysis \
--master yarn
--deploy-mode cluster
--num-executors 100 \
--executor-memory 16g \
--executor-cores 4 \
--driver-cores 4 \
--driver-memory 16G \
--spark.default.parallelism 1200 \
--conf spark.yarn.executor.memoryOverhead "= 4096m \
--conf spark.yarn.driver.memoryOverhead = 2048m \
/usr/opt/xxx/spark/jar/spark.jar
剩余73页未读,继续阅读
资源评论
lucklilili
- 粉丝: 459
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功