从 0 开始学大数据
李智慧
同程艺龙交通首席架构师,前 Intel 大数据架构师,《大型网站技术架构》作者
71151 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
智慧写给你的寄语 (1讲)
从 0 开始学大数据
15
15
1.0x
00:00/00:00
登录|注册

19 | Spark的性能优化案例分析(上)

思考题
Spark性能优化
大数据软件性能优化
软件性能优化
Apache开源社区的组织和参与方式
性能优化案例分析

该思维导图由 AI 生成,仅供参考

我们知道,现在最主流的大数据技术几乎都是开源的产品,不管是 Hadoop 这样的大数据存储与计算产品,还是 Hive、Spark SQL 这样的大数据仓库,又或者 Storm、Flink 这样的大数据流计算产品,还有 Mahout、MLlib 这样的大数据机器学习算法库,它们都来自开源社区。所以,我们在使用大数据、学习大数据的过程中肯定少不了要和开源社区打交道。
我在 Intel 工作期间主要工作就是参与 Apache 开源社区的大数据项目开发,其实上一期我讲的 Panthera 最初也是准备为 Hive 项目增强标准 SQL 处理能力而开发,但是因为和 Apache Hive 项目管理方在开发理念上的冲突,最终选择独立开源。后来我又参与了 Apache Spark 的开发,为 Spark 源代码提交了一些性能优化的 Patch。我想通过专栏两期的内容,具体介绍一下如何参与 Apache 这样开源社区的软件开发,如何进行软件性能优化,以及我在 Apache Spark 源码上做的一些优化实践。
一方面我希望你能借此更深入、系统地了解软件性能优化;另一方面也可以更深入了解 Spark 的一些运行机制,同时也可以了解 Apache 开源社区的运作模式。因为我们在使用各类大数据产品的时候,一定会遇到各种问题,想要解决这些问题,你可以直接到官方的开源社区去求助并寻找答案。在使用过程中,如果这些大数据产品不能满足你的需求,你可以阅读源代码并直接对源代码进行修改和优化。因为你在实践过程中产生的需求可能其他人也会有,你可以将你修改的源代码提交到开源社区,请求合并到发布版本上,供全世界开发者使用。这也是开源最大的魅力。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了作者在Apache开源社区的软件开发经历和在Apache Spark源码上进行的性能优化实践。首先,文章详细介绍了Apache开源社区的组织和参与方式,包括项目管理委员会、committer和contributor的角色及参与流程。随后,着重讨论了软件性能优化的重要性和一般过程,强调了性能测试和架构设计的重要性。从大数据软件性能优化的角度出发,提出了SQL语句优化、数据倾斜处理、MapReduce、Spark代码优化、配置参数优化以及大数据开源软件代码优化等方面的优化方法。通过这些内容,读者可以了解到作者在Apache开源社区的参与经历,以及在大数据软件性能优化方面的实践经验和建议。文章内容涵盖了开源社区参与方式、软件性能优化的一般过程和大数据软件性能优化的具体方法,对于对开源社区和大数据领域感兴趣的读者具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • Jack Zhu
    确定问题细节原因,针对主要问题进行解决 1.如是网卡接入能力不够,则需要更换网卡或增加网卡 2.如是网卡--应用之间的io瓶颈,则需要考虑零拷贝减少copy释放性能,使用大页内存减少页表miss,使用专门核心做收包缓存到软队列等

    作者回复: √

    2018-12-11
    27
  • sunlight001
    考虑传输压缩,牺牲cpu的办法了

    作者回复: √

    2018-12-11
    6
  • yang
    1.批量发送数据 2.压缩传输数据 3.增加带宽 还有咩?

    作者回复: √

    2018-12-11
    5
  • 请问文中的几个性能测试的图怎么快速生成呢?

    作者回复: 这个模块最后一期专门讲这个测试工具的设计开发

    2018-12-11
    3
  • 老男孩
    因为我对 hadoop,spark也是跟随专栏在学习。不知道计算过程中节点之间通信是一种什么方式?是否可以采用netty这样的网络框架,因为netty的数据读写都是在bytebuf中进行的。而且我们可以自定义channelHandler在数据出站入站的时候编解码,压缩解压。

    作者回复: √

    2018-12-11
    2
    2
  • 足迹
    硬件上可以升级网卡,比如百兆升级到千兆; 软件上看看是否可以新的版本可以解决; 逻辑上最关键,尽量做到数据本地性,能本地算好的一定不传输到其他节点。

    作者回复: √

    2018-12-11
    2
  • John
    李老师,我想请教下,Impala 和 Hive 的应用场景区别,换句话,就是什么时候用 Impala 比 Hive 有优势?谢谢

    作者回复: 后面大数据基准测试一期专栏会讨论

    2018-12-11
  • linazi
    老师 spark图谱如何生成那几个性能测试图

    作者回复: 后面专栏会讲

    2018-12-11
  • 1:换更强劲的网卡,千兆换万兆试试 2:减少数据量,压缩数据,用CPU计算能力减空间 3:减少IO次数,批量发送数据 4:从业务逻辑下手,看看是否可以优化逻辑减少IO,或者减少数据量 5:看看网络是否共享,不是自己的流量打满的网卡,如果是,采用独占的资源使用方式 6:换一种方式,只发送必要的信息,将计算迁移到接收消息的机器上,或者部分迁移计算逻辑
    2019-09-28
    34
  • 杰之7
    学习完基础篇,来学实战篇的Spark性能优化课程。通过这篇文章的阅读,无论是开源的软件,还是收费的软件,基本上都是被美国人开发出来的,至少这点上我们的路还很远,对于我自身,通过我的学习和实践,我希望至少能通过我的努力做到我想做的数据开发的工作。 通过对这节内容的阅读,熟悉了开源软件的管理平台Apache,我们可以通过提交自己的代码到开源平台上,一旦经过Commiter通过,我们就是这个开源平台的Contributor。 在软件性能优化上,不经过性能测试的软件不要优化,不懂其架构设计的软件不要进行性优化。因为性能测试包括多维度的指标,没有对比,何来优化,不懂架构设计,也不可能真正知道性能瓶颈在哪里。基于此,老师讲述了讲述了大数据软件优化的方向,SQL语句的优化,数据倾斜处理,也就是对不需要的数据剔除,Mapreduce、Spark代码优化,因为这些软件是开源,厉害的人就能针对公司具体的产品业务做源码的修改。通过配置参数的优化,也是运维工程师正做的事。 总之,我们可以通过自己的一点点的努力让自己有那么一点点价值,能做对这个世界上一点有用的东西吧,这就够了。
    2018-12-11
    12
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部