河源新闻网 河源 资讯 关注 科技 财经 汽车 娱乐 图片
网络 教育 体育 网络 军事

专访Intel程浩:浅谈Apache Spark框架性能调优札记

来源:河源新闻网 人气: 发布时间:2017-12-11
摘要:【编者按】每个人的成长曲线不同,有的人在研究生之时就已有相当知名的产品和框架,从而在接下来的工作中一路顺风顺水,有的人缺需要经历一个又一个的坑才能成

【编者按】每个人的成长曲线不同,有的人在研究生之时就已有相当知名的产品和框架,从而在接下来的工作中一路顺风顺水,有的人缺需要经历一个又一个的坑才能成长,不管是前者的聪明高效,还是后者的笨鸟先飞,他们都是在迈着脚步不断地向前。不妨停下脚步看下一些同行,以激励自己更好地前行。CSDN与你相约SDCC 2017·深圳站讲师。

专访Intel程浩:浅谈Apache Spark框架性能调优札记

2017年6月10-11日,SDCC 2017将在创新之都深圳火热开启。据悉,英特尔软件与服务部大数据研发经理程浩将在SDCC 2017·深圳站之大数据技术实战峰会带来题为《Apache Spark大数据计算性能调优之部署最佳实践》的分享。更多峰会嘉宾和议题请点击。

以下为正文:

专访Intel程浩:浅谈Apache Spark框架性能调优札记

【嘉宾】程浩,英特尔软件与服务部大数据研发经理。Intel亚太研发中心Spark团队研发经理,Apache Spark活跃开发者,致力于Apache Spark框架在Intel平台架构上的性能分析与优化。

CSDN:请介绍下您和您所在的团队,以及目前的工作重点。

程浩:我们团队隶属于英特尔软件与服务事业部系统技术优化部门,早在2012年就开始与UC Berkeley的AMPLab实验室合作交流,在Spark开源生态圈中保持密切合作,在过去的几年中,我们为Apache Spark生态圈组件提交了大量的功能、性能优化代码,并辅助国内外公司在实际大数据生产环境中落地Spark应用,随着Apache Spark日趋成熟稳定,逐渐为大数据处理领域内最广泛使用的框架之一,我们团队也把注意力放到研究最佳的技术方案,包括Spark软件本身的改进,也包括采用英特尔的硬件及其软件加速库来提高Spark的运行效率,为Spark用户在英特尔的硬件架构平台上提供最佳性价比技术解决方案支持。

CSDN:Spark框架在英特尔平台上的融合,在架构上具有怎样的特点?有哪些具体的适用场景?

程浩:英特尔的软硬件平台在数据中心部署占据了很高的比例,随着Spark功能越来越完备,很多公司都采用了Spark作为其最主要的大数据计算引擎之一,但是Spark框架诞生之初,并非为英特尔的硬件平台量身打造,如何充分挖掘现有英特尔架构平台的计算性能,优化Spark应用的执行效率,对于提升硬件资源利用率,降低成本有非常大的效益。

Apache Spark开源社区公平性原则很强,对于特定硬件厂商的优化技术方案很难合并到Spark的主干代码中,而英特尔对其自身的硬件平台往往提供了很多软件驱动和加速库,这些性能优化在单机基准测试中体现非常明显,我们团队做了大量将Spark和英特尔相关加速库集成的工作,并通过授权相关优化代码给关键客户、走第三方大数据发行商(比如Cloudera)或者开源相关功能代码等方式,把我们的优化方案提供给Spark终端用户。另外,英特尔的硬件技术发展推陈出新非???,新的硬件技术对于传统的软件架构设计会产生很大影响,比如,通常我们认为磁盘是比较慢的设备,但是英特尔的最新一代SSD将提供极大的吞吐率、超高的IOPS,颠覆了现有的软件框架设计时的前提假设,这些软件架构需要大量改写甚至重写才能发挥出英特尔硬件的优势,不仅仅是存储,英特尔在内存、网络、计算芯片等硬件设备上也有大量的创新和新产品,我们团队和英特尔内部相关技术专家密切合作,做了一些前瞻性的原型开发,希望对于未来的大数据软件架构设计产生积极影响。

CSDN:影响Spark性能的因素有哪些?有哪些优化层面?您认为在Spark性能优化中应坚持哪些原则?

程浩:Spark是一款非常优秀的分布式内存计算框架,涉及到网络,磁盘,内存,软件算法实现,作业调度策略等,影响Spark应用程序性能的因素也往往是多方面的。比如数据调度本地性对于网络负载会有很大影响,分布式环境下任务调度均衡性、任务调度的粒度、磁盘和内存的设置,甚至用户程序自身有没有充分考虑现有的软硬件架构配置等,往往需要具体问题具体分析。

通常来说,我认为Spark性能优化基本原则是分析先行,即通过各种性能分析工具包括Spark自带的作业实时运行状态监控工具,先宏观分析Spark应用的瓶颈出现在哪里(网络、磁盘、CPU或者分布式作业调度均衡、Java GC等),或者压根没有出现任何瓶颈(作业调度的并行度设置太高,或者作业量太小等),有必要时可以使用比如Visual VM或者VTune等工具和程序日志,分析程序执行时单机热点。Spark集群和应用提供了大量的配置参数,需要根据性能监控分析,进而有针对性的调整Spark集群配置,Spark应用配置,直至应用代码优化甚至是Spark自身的软件代码优化。当然一方面需要对于Spark框架的基本原理有一定理解,甚至是阅读Spark的相关代码,另外也需要一定的性能监控分析工具使用的经验。

CSDN:不同的业务场景和数据情况,需要对Spark作业进行多方面的调节和优化。硬件调优在Spark性能调优中扮演了什么样的角色?具体调优内容有哪些?

程浩:通常为了Spark应用能达到最好的性能,需要通过修改各种软件参数配置,设置程序代码等手段,确保程序运行时充分利用计算机系统硬件资源,让应用的瓶颈落脚到硬件能力的限制上来,比如CPU的利用率保持在80%-90%以上,磁盘或者网络吞吐率已经到达理论的上限带宽等,在这种情况下,我们认为应用程序的性能基本已经到最佳状态了。此时,若想更进一步提升应用性能,升级受限的硬件设备或许是唯一选择。比如对于Spark SQL或者ETL类作业而言,磁盘的吞吐率可能是最大的性能瓶颈,只能通过升级磁盘来达到提升性能目的。

硬件调优不像软件,手段非常有限也不透明,这里的调优只是体现在对现有硬件设备的升级,或者新的大数据计算集群硬件采购过程中,可以采用的一些方法来度量或者分析性价比,让CPU、网络、磁盘和内存等硬件配置更加合理。

CSDN:在释放硬件性能、监控硬件性能发挥方面,有怎样的调优手段?能否分享一些典型的Spark实践案例?

程浩:选择合适的监控工具,性能分析是第一步,更多细节,我会在SDCC的分享中做详细介绍,欢迎大家来现场或者和我邮件交流。

CSDN:您在Spark领域深耕多年,可以分享一些Spark应用和实践的经验吗?

河源新闻网
责任编辑:河源新闻网
河源新闻网 | 河源 | 资讯 | 关注 | 科技 | 财经 | 汽车 | 娱乐 | 图片

主办:河源晚报社 管理维护:河源新闻网编辑部

ICP备案号/经营许可证号: 粤ICP备09058393号 公安网备案编号: 44160202000041