专栏名称: 朱小厮的博客
著有畅销书:《深入理解Kafka》和《RabbitMQ实战指南》。公众号主要用来分享Java技术栈、Golang技术栈、消息中间件(如Kafka、RabbitMQ)、存储、大数据以及通用型技术架构等相关的技术。
目录
相关文章推荐
无锡博报生活  ·  售罄!知名茶饮品牌周边引争议 ·  昨天  
物道  ·  玉兰花开,一瞥惊鸿 ·  2 天前  
51好读  ›  专栏  ›  朱小厮的博客

Spark 性能调优还用网上抄作业?

朱小厮的博客  · 公众号  ·  · 2021-03-17 08:51

正文

这年代,做数据的,没人不知道 Spark 是什么吧。 作为最火的大数据计算引擎,现在基本上是 各互联网大厂的标配了。

比如,字节跳动基于 Spark 构建的数据仓库,服务了几乎所有的产品线,包括抖音、今日头条、西瓜视频等。再比如,百度基于 Spark 推出 BigSQL,为海量用户提供次秒级的即席查询。可以说, 在海量数据处理上,Spark 的角色至关重要。

想到我刚刚接触 Spark 那会儿,真心佩服它的开发效率,是真高啊!MapReduce 上千行代码才能实现的业务功能,Spark 几十行代码就搞定了。

现在就更牛了,去年 6 月,Spark 直接从 2.4 直接升级到了3.0,最大的亮点就在于 性能优化 ,它添加了诸如自适应查询执行(AQE)、动态分区剪裁(DPP)、扩展的 Join Hints 等新特性。这估计会让 Spark 在未来 5 到 10 年继续雄霸大数据生态圈。

就目前来说,Spark 有海量批处理、实时流计算、图计算、数据分析和机器学习这 5 大应用场景,不论你打算朝哪个方向深入, 「性能调优」 都是必须要跨越的一步。

原因很简单, 对于这 5 大场景来说,提高执行性能是刚需。 想要精通 Spark,就得拿下“性能调优”这把万能钥匙。

很多开发者都意识到这一点,但难就难在,市面上关于 Spark 性能调优的资料,大都不系统,只是在讲一些常规的调优技巧和方法。而对于一些大神分享的调优手段,只是 “照葫芦画瓢” 做出来的东西,也总是达不到预期的效果,比如:

  • 明明都是内存计算,为什么我用了 RDD/DataFrame Cache,性能反而更差了?

  • 网上吹得神乎其神的调优手段,为啥到了我这就不好使呢?

  • 并行度设置得也不低,为啥我的 CPU 利用率还是上不去?

  • 节点内存几乎全都划给 Spark 用了,为啥我的应用还是 OOM?

这些问题看似简单,但真不是一两句话就能说得清的。 这需要我们深入Spark的核心原理,不断去尝试每一个API、算子,设置不同的配置参数,最终找出最佳的排列组合。

说到底,还是需要更多的学习案例与实操。我最近关注到 FreeWheel 机器学习团队负责人吴磊,总结了出一套关于 「性能调优的方法论」 。挺戳中我的,分享给大家👇

按图索骥开展性能调优

这张图来自吴磊的极客时间专栏 《Spark 性能调优实战》 ,刚刚上线,不仅深入浅出的讲了 Spark 核心原理,还全面解析 Spark SQL 性能调优,总结了一份应用开发、配置项设置实操指南,真心实用。

最吸引我的是实操,专栏以 「北京市汽油车摇号」数据为例, 手把手带你实现一个分布式应用。一句话总结,就是能让你一站式加速 Spark 作业执行性能,是不是很牛。

△ 扫码免费试读或订阅

早鸟 + 口令「 Spark6666

立省 ¥30,到手仅 ¥69

作者是吴磊,现任 Comcast Freewheel 机器学习团队负责人,主要负责计算广告业务中机器学习应用的实践、落地与推广。之前也任职于 IBM、联想研究院、新浪微博,可以说具备丰富的数据库、数据仓库、大数据开发与调优经验了。

早之前听说过他,研究 Spark 是下了功夫的,而且做事儿有股 “较真儿” 的风格,看他上面总结的方法论图就知道,是个严谨、认真的人,跟着这样有实践、有理论,懂实现细节的大佬学习,错不了。

Spark 怎么能“学得快,还学得好”?

跟着大佬,能又快又好的学,那就是省“时间”,找到捷径、赚到了,目前专栏 3 个部分的内容,干货不少:

  • 原理篇:聚焦 Spark 底层原理,打通性能调优的任督二脉

Spark 的原理非常多,但专栏聚焦于那些与性能调优息息相关的核心概念, 包括RDD、DAG、调度系统、存储系统和内存管理 。而且用的是最贴切的故事和类比、最少的篇幅,让你在最短的时间内掌握其核心原理,为后续的性能调优打下坚实的基础。

  • 性能篇:实际案例驱动,多角度解读,全方位解析性能调优技巧


一部分是讲解性能调优的通用技巧,包括应用开发的基本原则、配置项的设置、 Shuffle 的优化、资源利用率的提升。另一部分会专注于数据分析领域,借助 Spark内置优化如 Tungsten、AQE 和典型场景如数据关联,和你聊聊 Spark SQL 中的调优方法和技巧。


  • 实战篇:打造属于自己的分布式应用


专栏以 2011 - 2019 的《北京市汽油车摇号》数据为例, 手把手教你打造一个分布式应用,带你从不同角度洞察汽油车摇号的趋势和走向。 我相信,通过这个实战案例,你对性能调优技巧和思路的把控肯定会有一个“质的飞跃”。


除此之外,听说吴磊还会不定期地针对热点话题加餐,比如和 Flink、Presto 相比,Spark 有哪些优势,再比如 Spark 的一些 新特性 ,以及业界对于 Spark 的新探索。这也能帮助我们更好地面对变化,把握先机。







请到「今天看啥」查看全文