甄鹏表示,当前百度的Spark集群由上千台物理主机(数万Cores,上百TBMemory)组成,日提交App在数百,已应用于凤巢、大搜索、直达号、百度大数据等业务。之以选择Spark,甄鹏总结了三个原因:快速高效、API 友好易用和组件丰富。
快速高效。首先,Spark使用了线程池模式,任务调度效率很高;其次,Spark可以最大限度地利用内存,多轮迭代任务执行效率高。
API友好易用。这主要基于两个方面:第一,Spark支持多门编程语言,可以满足不同语言背景的人使用;第二,Spark的表达能力非常丰富,并且封装了大量常用操作。
组件丰富。Spark生态圈当下已比较完善,在官方组件涵盖SQL、图计算、机器学习和实时计算的同时,还有着很多第三方开发的优秀组件,足以应对日常的数据处理需求。
百度开放云BMR
在BMR介绍中,甄鹏表示,虽然BMR被称为Baidu MapReduce,但是这个名称已经不能完全表示出这个平台:BMR是百度开放云的数据分析服务产品,基于百度多年大数据处理分析经验,面向企业和开发者提供按需部署的Hadoop&Spark集群计算服务,让客户具备海量数据分析和挖掘能力,从而提升业务竞争力。
如图所示,BMR基于BCC(百度云服务器),建立在HDFS和BOS(百度对象存储)分布式存储之上,其处理引擎包含了MapReduce和Spark,同时还使用了HBase数据库。在此之上,系统集成了Pig、Hive、SQL、Streaming、GraphX、MLLib等专有服务。在系统的最上层,BMR提供了一个基于Web的控制台,以及一个API形式的SDK。
在图片的最右边,Scheduler在BMR中起到了管理作用,使用它开发者可以编写比较复杂的作业流。
Spark On BMR
类似于通常的云服务,BMR中的Spark同样随用随起,集群空闲即销毁,帮助用户节省预算。此外,集群创建可以在3到5分钟内完成,包含了完整的Spark+HDFS+YARN堆栈。同时,BMR也提供Long Running模式,并有多种套餐可选。
完善的报表服务,全方位监控
在安全上,用户拥有虚拟的独立网络,在同一用户全部集群可互联的同时,BMR用户间网络被完全隔离。同时,BMR还支持动态扩容,节点规模可弹性伸缩。除此之外,在实现Spark全组件支持的同时,BMR可无缝对接百度的对象存储BOS服务,借力百度多年的存储研发经验,保证数据存储的高可靠性。