谁能讲清楚Spark之Spark逻辑处理流程

        本次主要介绍Spark是如何将应用程序转化为逻辑处理流程的,包括RDD数据模型概念、数据操作概念,以及数据依赖关系的建立规则等。

一.spark处理流程概览

spark 典型的逻辑处理流程包括四部分:

1 数据源:数据源表示的是原始数据,数据可以存放在本地文件系统和分布式文件系统中,如HDFS、分布式Key-Value数据(HBase)等。

2 数据模型:确定了数据源后,我们需要对数据进行操作处理。首要问题是如何对输入/输出、中间数据进行抽象表示,使得程序能够识别处理。在面向对象中将数据抽象为对象(object)。然后,我们可以在对象上定义数据操作,Hadoop MapReduce框架将输入/输出、中间数据抽象为K,V,record。这种数据表示方式的优点是简单易操作,缺点是过于细粒度,没有对这些数据进行更高层的抽象,导致只能使用map(K,V)这样的固定形式去处理数据,而无法使用类似面向对象程序的灵活数据处理方式。Spark认知到了这个缺点,将输入/输出、中间数据抽象表示为统一 的数据模型命名为RDD,RDD中可以包含各种类型的数据。

它与普通的数据结构的主要区分有三点:
        1)RDD只是一个逻辑概念,在内存中并不会真正地为某个RDD分配 存储空间(除非该RDD需要被缓存)。RDD中的数据只会在计算中产生,而且在计算完成后就会消失,而ArrayList等数据结构常驻内存。
        2)RDD可以包含多个数据分区,不同数据分区可以由不同的任务 (task)在不同节点进行处理。
        3)由于数据操作一般都

你可能感兴趣的:(大数据之路,spark,大数据,分布式)