Spark 简介

Spark 是一个快速 且 通用的 集群计算平台。
快速是体现在处理TB数据量时,比HADOOP快很多。
因为,SPARK是基于内存的计算。

通用是指SPARK应用场景比较多。设计容纳了其他分布式系统拥有的功能。批处理,迭代式计算,交互查询和流处理。降低维护成本。

高度开放,提供了PYTHON,JAVA,SCALA,SQL的API


image.png

Spark Core 包含了任务调度,内存管理,容错机制。内部定义了RDD(弹性分布式数据集),提供了很多APIS操作这些RDD。为其他组件提供底层的服务。

SPARK SQL 处理结构化数据的库。企业中用来做报表统计。

SPARK STREAMING,实时流处理组件。类似STORM,提供了API来操作实时流数据。企业中用来从KAFKA接受数据做实时统计。

Mlib,一个包含机器学习功能的包,包含分类,聚类,回归等。支持集群上的横向扩展。

Graphx, 支持图的并行计算,继承RDD API。提供各种图操作。

Cluster Manager
自带的集群管理调度器,常见的还有YARN和MESOS。

SPARK 和 HADOOP区别

Spark因为其处理数据的方式不一样,会比MapReduce快上很多。MapReduce是分步对数据进行处理的: ”从集群中读取数据,进行一次处理,将结果写到集群,从集群中读取更新后的数据,进行下一次的处理,将结果写到集群,等等…“ Booz Allen Hamilton的数据科学家Kirk Borne如此解析。
反观Spark,它会在内存中以接近“实时”的时间完成所有的数据分析:“从集群中读取数据,完成所有必须的分析处理,将结果写回集群,完成,” Born说道。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。
如果需要处理的数据和结果需求大部分情况下是静态的,且你也有耐心等待批处理的完成的话,MapReduce的处理方式也是完全可以接受的。
但如果你需要对流数据进行分析,比如那些来自于工厂的传感器收集回来的数据,又或者说你的应用是需要多重数据处理的,那么你也许更应该使用Spark进行处理。
大部分机器学习算法都是需要多重数据处理的。此外,通常会用到Spark的应用场景有以下方面:实时的市场活动,在线产品推荐,网络安全分析,机器日记监控等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容