专访Intel程浩:浅谈Apache Spark框架性能调优札记
分类:科技创新 热度:

【编者按】每个人的成长曲线不同,有的人在研究生之时就已有相当知名的产品和框架,从而在接下来的工作中一路顺风顺水,有的人缺需要经历一个又一个的坑才能成长,不管是前者的聪明高效,还是后者的笨鸟先飞,他们都是在迈着脚步不断地向前。不妨停下脚步看下一些同行,以激励自己更好地前行。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的相关代码,另外也需要一定的性能监控分析工具使用的经验。

上一篇:开发者如何进行快速学习 下一篇:图片背后有大生意,百亿美元独角兽Pinterest再获1.5亿美元融资
猜你喜欢
各种观点
热门排行
精彩图文