机房360首页
当前位置:首页 » 业界动态 » Spark技术解析及在百度开放云BMR应用实践

Spark技术解析及在百度开放云BMR应用实践

来源:至顶网 作者:yuxin编辑 更新时间:2015-1-14 11:37:40

摘要:2014年,Spark开源生态系统得到了大幅增长,已成为大数据领域最人气的开源项目之一,活跃在Hortonworks、IBM、Cloudera、MapR和Pivotal等众多知名大数据公司,更拥有Spark SQL、Spark Streaming、MLlib、GraphX等多个相关项目。同时值得一提的是,Spark贡献者中有一半左右的中国人。

  短短四年时间,Spark不仅发展为Apache基金会的顶级开源项目,更通过其高性能内存计算及其丰富的生态快速赢得几乎所有大数据处理用户。2015年1月10日,一场基于Spark的高性能应用实践盛宴由Databricks软件工程师连城、百度高级工程师甄鹏、百度架构师孙垚光、百度美国研发中心高级架构师刘少山四位专家联手打造。

  Databricks软件工程师连城——Spark SQL 1.2的提升和新特性

 

  谈及Spark SQL 1.2的提升和新特性,连城主要总结了4个方面——External data source API(外部数据源API)、列式内存存储加强(Enhanced in-memory columnar storage)、Parquet支持加强(Enhanced Parquet support)和Hive支持加强(Enhanced Hive support)。

  External data source API

  连城表示,因为在处理很多外部数据源中出现的扩展问题,Spark在1.2版本发布了External data source API。通过External data source API,Spark将不同的外部数据源抽象成一个关系表格,从而实现更贴近无缝的操作。

 

  External data source API在支持了多种如JSON、Avro、CSV等简单格式的同时,还实现了Parquet、ORC等的智能支持;同时,通过这个API,开发者还可以使用JDBC将HBase这样的外部系统对接到Spark中。

  连城表示,在1.2版本之前,开发者其实已经实现了各种各样外部数据源的支持,因此,对比更原生的支持一些外部数据源,External data source API的意义更在于针对相应数据源进行的特殊优化,主要包括Column pruning(列剪枝)和Pushing predicates to datasources(将predicates贴近数据源)两个方面:

  Column pruning。主要包括纵横的两种剪枝。在列剪枝中,Column pruning可以完全忽视无需处理的字段,从而显著地减少IO。同时,在某些条件查询中,基于Parquet、ORC等智能格式写入时记录的统计信息(比如最大值、最小值等),扫描可以跳过大段的数据,从而省略了大量的磁盘扫描负载。

 

  Pushing predicates to datasources。在更复杂的SQL查询中,让过滤条件维度尽可能的接近数据源,从而减少磁盘和网络IO,最终提高整体端到端的性能。

 

  使用External data source API之前

 

  使用External data source API之后

 

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2015114/n349864665.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片