夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
夫学须静也,才须学也,非学无以广才,非志无以成学。淫慢则不能励精,险躁则不能冶性。
年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及。
——诸葛亮《诫子书》
于文章中出现的任何错误请大家批评指出,一定及时修改
有任何想要讨论和学习的问题可联系我:yangmq@aliyun.com
文章目录
Spark简介(学习笔记)
一、Spark简介
-
Spark是什么?
Spark是一个快速且通用的集群计算平台 -
Spark的特点
Spark是快速的
Spark扩充了流行的Mapreduce计算模型
Spark是基于内存的计算
Spark是通用的
Spark的设计容纳了其它分布式系统拥有的功能,批处理,迭代式计算,交互查询和流处理等
优点:降低了维护成本
Spark是高度开放的
Spark提供了Python,java,Scala,Sql的APi和丰富的内置库
Spark和其它的大数据工具整合的很好,包括hadoop,kafka等
二、Spark生态介绍
-
Spark历史
Spark诞生于2009年,加州大学伯克利分校RAD实验室的一个研究项目
最初是基于hadoop mapreduce的
发现Mapreduce在迭代式计算和交互式上低效,引入了内存存储
2010年3月份Spark开源
2011年AMP实验室在Spark上开发高级组件,像Spark Streaming
2013年转移到了Apache下,不久便成为*项目了 -
Spark的组件
Spark包括多个紧密集成的组件
Spark Core:
包含了Spark的基本功能,包含任务调度,内存管理,容错机制等
内部定义了RDDs(弹性分布式数据集)
提供了很多APIs来创建和操作这些RDDs
应用场景,为其他组件提供底层的服务
Spark SQL:
是Spark处理结构化数据的库,就像Hive SQL,mysql一样
应用场景,企业中用来做报表统计
Spark Streaming:
是实时流处理组件,类似Storm
Spark Streaming提供了API来操作实时流数据
应用场景,企业中用来从Kafka接收数据做实时统计
Mlib:
一个包含通用机器学习功能的包,Machine learning lib
包含分类,聚类,回归等,好包括模型评估,和数据导入
Mlib提供的上面这些方法,都支持集群上的横向扩展
应用场景,机器学习
Graphx:
是处理图的库(例如,社交网络图),并进行图的并行计算
像Spark Streaming,Spark SQL一样,他也继承了RDD API
它提供了各种图的操作,和常用的图算法,例如PangeRank算法
应用场景,图计算
Cluster manager:
就是集群管理,Spark自带一个集群管理是单独调度器
常见集群管理包括Hadoop YARN,Apache Mesos
紧密集成的优点:
Spark底层优化了,基于Spark底层的组件,也得到了响应的优化
紧密集成,节省了各个组件组合使用时的部署,测试等时间
向Spark增加新的组件时,其它组件,可立刻享用新组件的功能
三、Spark与Hadoop的比较
-
Hadoop应用场景
离线处理
对失效性要求不高 -
Spark应用场景
失效性要求高的场景
机器学习等领域 -
比较
Doug Cutting的观点:
这是生态系统,每个组件都有其作用,各善其职即可
Spark不具有HDFS的存储能力,要借助HDFS等持久化数据
大数据将会孕育出更多的新技术