您的位置:首页 > 其它

spark基础知识二

2016-05-15 12:32 176 查看
偶然看到spark的一篇概述PPT,来自中国移动,总结的很清晰全面。

这里对其主要内容小结,加深理解。

spark历史:

2009年诞生于伯克利大学。

2014年成为apache顶级项目。

spark成为最为活跃的大数据处理平台和框架。

特点:

架构先进:采用简洁的scala语言,akka作为通信框架,DAG作为执行引擎减少计算中间结果写入到HDFS,统一抽象的RDD。

高效:内存计算模型,提供cache机制。

易用:提供20+数据处理方式,相比map、reduce多了很多;支持四种语言。

提供整体解决方案:包括Spark Streaming、MLlib、GraphX、SparkSQL.

与hadoop无缝对接:可以使用yarn,HDFS,Mesos,standalone。

整体架构分四层:由上到下

工具层:SQL、MLlib等

计算层:spark

存储层:HBase、HDFS

资源层:Yarn、Mesos、standalone

核心概念:

driver、job、executor。具体见下图。



流程:见下图



spark on standalone:

master/worker是standalone角色;Driver/executor是spark角色。

master负责分配资源;driver负责生成task、任务调度。

核心模块:

RDD、scheduler、storage、shuffler.具体见下图。



RDD持久化:

可以持久化在内存,也可以是磁盘,一般将的是内存,因为spark是内存计算模型。

可以设置storagelevel的类型。

不同级别的数据,持久化的效果不同,不一定都能提高效率。

持久化函数persist()、cache()。

RDD依赖关系:子RDD与父RDD之间的关系。具体见下图。



窄依赖可以进行流水线计算,加快计算,提高效率。宽依赖则不行,意味着要进行shuffle操作。

RDD容错机制:

transformation中,如果出现错误。

若是窄依赖,则重进计算即可。

若是宽依赖,则计算代价大,可以加入checkpoint。

sheculer:

DAGScheluder;taskScheduler.

sparkSQL:

支持SQL无缝查询。

支持多种数据源。

支持JDBC、ODBC。

与Hive兼容。

应用场景:

腾讯的广点通,广告推送。

淘宝的推荐系统。

参考文章:

1、http://wenku.baidu.com/link?url=Su3o-Z7FOkDdwrTD3CsWMWzPMaiDMkm93JoLYQwbVvO0mzT6z2jGkb6If4i0xycElDCz_2fDm_B1yyuYYICyZyXl7obOzIY0i8FeCLHfvgm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spark