Spark概念知识笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012535605/article/details/80917377

文章参考链接:点击打开链接

最近总结了个人的各项能力,发现在大数据这方面几乎没有涉及,因此想补充这方面的知识,丰富自己的知识体系,

大数据生态主要包含:Hadoop和Spark两个部分,Spark作用相当于MapReduce

MapReduce和Spark对比如下


        磁盘由于其物理特性现在,速度提升非常困难,远远跟不上CPU和内存的发展速度。近几十年来,内存的发展一直遵循摩尔定律,价格在下降,内存在增加。现在主流的服务器,几百GB或几TB的内存都很常见,内存的发展使得内存数据库得以实现,Spark正是利用这种计算资源设计的基于内存的分布式处理软件,其目标是取代MapReduceSpark可以直接对HDFS进行数据读写,支持YARN等部署模式。    适合用于多次操作特定数据量大的数据集的场合(数据挖掘和机器学习);数据量小且计算密集度大的场合,其性能提升相对较小。

        通过对比Spark性能和易用性较高因此从Spark入手学习大数据生态。

        Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法,(提供了大量库SQL、DataFrames、MLlib、GraphX、Spark Streaming等)

        在Spark里,所有的处理和计算任务都会被组织成一系列Resilient Distributed Dataset(弹性分布式数据集,简称RDD)上的transformations(转换) 和 actions(动作)。 RDD是一个包含诸多元素、被划分到不同节点上进行并行处理的数据集合,可以将RDD持久化到内存中,这样就可以有效地在并行操作中复用(在机器学习这种需要反复迭代的任务中非常有效)。 在节点发生错误时RDD也可以根据其Lineage自动计算恢复。 RDD是Spark的最基本抽象,是对分布式内存的抽象使用,以操作本地集合的方式来操作分布式数据集的抽象实现。 RDD是Spark最核心的内容,它表示已被分区、不可变的、能够被并行操作的数据集,不同的数据集格式对应不同的RDD实现。 RDD必须是可序列化的。 
       Spark框架是使用Scala函数式编程语言开发的,支持Java编程,Java与Scala可以互操作。此外,Spark提供了Python编程接口,Spark使用Py4J实现Python与Java的互操作,从而可以使用Python编写Spark程序。Spark还提供了一个Python_Shell,即pyspark,从而可以以交互的方式使用Python编写Spark程序。

扫描二维码关注公众号,回复: 3113836 查看本文章

猜你喜欢

转载自blog.csdn.net/u012535605/article/details/80917377
今日推荐