Spark是什么
Spark是UC Berkeley AMP lab (美国加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce通用并行计算处理框架,是专为大规模数据处理而设计的快速通用的计算引擎。可以说,spark是对Hadoop大数据处理技术的延续和发展,既继承了hadoop分布式并行处理的相关理念,同时也解决了目前Hadoop存在的一些问题,比如MapReduc编程比较抽象,不支持迭代计算等。Spark核心概念理解
Spark的核心抽象是RDD(Resilient Distributed Dataset),RDD翻译过来是“弹性分布式数据集合”,其物理形态可理解为内存中一个只读的带分区记录的数据集合。RDD的“分布式和数据集合”特征比较容易理解,那“弹性”特征如何理解呢?先简要介绍Spark中的“惰性计算”和“血缘关系”特性。
“血缘关系”:
“血缘关系”是指Spark中的RDD都存在依赖关系,即RDD是由哪些其他RDD计算得到的,以及它的父RDD或子RDD是什么,RDD之间的依赖关系分成“宽依赖”和“窄依赖”,“宽依赖”会导致shuffle操作,系统会根据RDD之间的依赖关系生成DAG(有向无环图),后续的任务调度就是基于DAG进行的。
“惰性计算”:
RDD的创建方式有三种:
1)读取外部数据:如:RDD = hc.sql(“sql_text”)
2)数据集合转换: 如:RDD = sc.parallelize(A)
3)
Spark及其核心概念理解
最新推荐文章于 2023-10-28 21:39:24 发布