大数据框架之Spark框架

大数据软件框架之



Spark框架:




Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具备的优势;但不一样于MapReduce的是Job中间输出结果能够保存在内存中,从而再也不须要读写HDFS,所以Spark能更好地适用于数据挖掘与机器学习等须要迭代的MapReduce的算法。(引自百度百科)



因为原来的批处理框架MapReduce适合离线计算,却没法知足实时性较高的业务,因此Spark诞生了。Spark速度快,开发简单,能够同时兼顾批处理和实时数据分析。 有时Spark框架被称做实时计算框架、内存计算框架或流式计算框架。

Hadoop使用数据复制来实现容错性,而Spark使用RDD(resilient Distributed Datasets ,弹性分布式数据集)数据存储模式来实现数据的容错性。RDD是只读的,分区记录的集合,在数据丢失后,RDD含有如何重建分区的相关信息,这就避免了使用数据复制,减小了对磁盘的访问。

Spark也须要集群管理器和分布式存储系统,集群管理器有Hadoop YARN、Apache Mesos 和Spark原生集群,分布式存储能够用HDFFS、Casanadra、OpenStaack Swift和Amazon S3。Spark也支持多语言,其中,最推荐的是Scala,Spark和Scala能够紧密集成。

Spark的内存适合于迭代计算,机器学习算法须要屡次遍历训练集,能够将训练集缓存在内存里,节省了访问磁盘的开销。尽管如此,Spark自己的复杂性也困扰着开发人员,它的统计功能和R语言没有可比性。