和封神一起“深挖”Spark

  1. 云栖社区>
  2. 博客>
  3. 正文

和封神一起“深挖”Spark

云学习小组 2016-08-24 16:36:40 浏览8388
展开阅读全文

2016云栖大会·北京峰会于89号在国家会议中心拉开帷幕,在云栖社区开发者技术专场中,来自阿里云技术专家曹龙(封神)为在场的听众带来《Deep dive into Spark》精彩分享。

关于分享者

曹龙,花名封神,专注在大数据领域,6年分布式引擎研发经验。先后研发上万台Hadoop、ODPS集群。先后负责阿里YARN、Spark及自主研发内存计算引擎。目前为广大公共云用户提供专业的Hadoop服务,即:E-mapreduce产品

演讲内容架构

  • 数据处理技术介绍
  • Spark 介绍
  • Spark Plus
  • Spark 应用场景
  • Spark 在云上
  • Spark 常见的问题
  • E-MapReduce大数据平台

演讲主要内容

大数据通常自上而下分为大数据产品、数据治理/作业生命周期、作业管理/作业流、分布式计算、分布式存储、分布式调度、硬件/机房七层。本次演讲的重点在于分布式计算层。

f3970574979966a58844b39d8df0c81e92bcadfc

在以时间、数据量的坐标抽上列出目前引擎大致擅长处理数据的坐标,应该还需要加上数据复杂度、成本等维度,才能更好的体现侧重点,这里不列出。没有哪个软件能解决所有的问题,能解决问题也是在一个范围内,即使是spark、flink等。目前存在有意思的事情是:greenplum类似的MPP引擎想处理大数据的需求,hadoop等被定位为大数据的引擎也想解决小数据的问题(列式存储、或者也加入一些索引)。图中右上角的想往左边靠,减少延迟,图中左下角的想往上面靠,增大能处理的数据量。

ad120b34cebcf8e2a976fa1b0c8d58c37d070b6f

DB/MPP跟Hadoop引擎相对比,两者有很大的不同,具体差异参见下图。从硬件、容错、调度模型及衡量标准方面各自都侧重一方面,对于事务性、index等,Hadoop引擎当前是不支持的。另外MPP其实也在跟Hadoop在融合,比如MPP on HDFS,Spark on DB也在实现。

4cbdec4f9990068999fe79400f7619e906fb262b

Hadoop生态计算引擎目前包括:Hadoop MapReduce、Spark/Spark 2.0、TEZ、Flink等,这里从计算模型,各自的特点分为了1G、2G、3G、3.8G、4G,分别代表其理论先进程度。Spark理论上并不是最先进的,但是目前来讲应该是最适合的。

3d709bdca3380c309968811e984fdb6aafb3044d

Spark 介绍

下图展示的是Spark的趋势,可以清楚地看到,在2012年至2013年间,Spark有了一个很大的转折,在那时候,阿里也在逐步使用Spark,到今天,Spark和Hadoop逐渐持平发展。

a518db35b2c2e5e7c050b2d377588799170ac9da

Spark 提供 SQL、机器学习库 MLlib、流计算 Streaming 和图计算 Graphx,同时也支持 Scala、Java、Python 和 R 语言开发的基于 API 的应用程序。下图显示的是Spark 1.0的基础架构。

68c234062f7d39f97646f2155fd48d675853359a

下图是Spark 2.0的基础架构,对比于1.0,Spark 2.0主要聚焦于两个方面:(1)对标准的SQL支持。(2)统一的DataFrame和Dataset(逻辑执行计划)API。特别的以后一些的API都是基于Catalyst的。

eb3c410cce367c9173b647cae007a3041a4808e0

完整的Spark链路如下图所示,主要包括SQL、RDD、Task、Thread。

59e453a4e088e474e89b5ed06ea85259226bdb01


Spark Plus

常见的Spark puls有:Spark部署模式、Spark弹性伸缩、Spark+aliuxio(加速)、与业务系统融合(解耦,业务系统与大数据系统)、Spark+数据库服务、Spark+存储格式。

其中弹性伸缩让Spark上大集群成为了可能;在Spark+存储格式中:1 TB数据的存储相对比文本节省了将近 75%;性能按照不同的query提高从几倍到数十倍不等。

90281433cdc3da77eb2915e1ee6759ae9c71ab57

常见的Spark应用场景包括:ETL、机器学习、流式计算、即时查询。

080ffc6ccd184aa2db23cbfa9dece65682171d9c

其中,在ETL场景中,通过Spark SQL 、Spark API、Dataset实现图片、语音、视频等信息的在线/离线数据抽取、转化为结构化数据,便于后续分析处理。

0ffda9a77c58932e4a0ef771e5b8598652a9f938

Spark 在云上

Spark在云上的最佳实践是将存储与计算分离,下图展现了自建ECS和EMP+OSS的存储计算分离成本估算对比情况。

e414db0ec9eeceb18626daec885ed1c74ce7fe07

下图展示的是自建ECS和EMP+OSS的terasort时间对比,这里自建ECS配置参数是1 master 4cpu 16g和8 Slave 4cpu 16g;EMR+OSS的参数是1 master 4cpu 16g和8 Slave 4cpu 16g。

6cce621b536a112085418a07ff44551034079977

下图展现了自建ECS和EMP+OSS的存储计算分离性能对照图,左边是ECS自建,右边是EMP+OSS。

282ad77b9ffb671e2369fc6cc8350908f82686d6 

Spark常见的问题包括卡住、内存溢出、GC频繁。


3408cc14de9787220b17180e7fd4790ac68c3fd7 

随着Spark 2.0的发布,Spark逐渐趋于成熟,未来Spark的发展方向:

  • 支持ANSI SQL
  • 性能接近MPP数据仓库
  • 一切基于优化(Catalyst)
  • 新硬件的支持,比如:大内存、GPU
  • 更加友好的支持云

 76d1c3c28e69e6b8d2580183935c54334ad1383e 

E-MapReduce大数据平台

E-MapReduce 是运行在阿里云平台上的开源大数据处理系统解决方案。它能够让用户将Apache Hadoop和Apache Spark等开源引擎运行在阿里云的云平台上,提供给用户在云上的分析和处理大数据的平台。我们提供管控系统、运维系统及后续的专家系统帮用户解决自动化的问题,并提供专家服务帮助客户解决疑难杂症。

87bc6930926e2337a84e2927dc175ec989af306e 

E-MapReduce产品的架构如下图所示:

 271c57b4f9628af67bfc41771fa6db5a7f414ff4 

从上图可以看出,Spark生态是E-MapReduce引擎的一部分,我们还有支持了其它非常多的引擎,如在离线处理、在线流式、在线存储及交互式查询等各个方面。基于我们过去许多年在阿里内部的沉淀,在易用性、成本、性能、运维等各方面具有阿里开源大数据的技术能力,欢迎大家使用。

网友评论

登录后评论
0/500
评论
云学习小组
+ 关注