首先我们上一张spark的技术栈框架图
结合上面的图,这篇文章我们主要介绍spark的spark core技术栈。
在spark中Spark core模块是整个Spark数据处理引擎的核心,它提供了分布式集群计算的基础设施和RDD抽象编程。下面分别介绍下两个部分
1)分布式集群计算的基础设施
这里主要是指spark core提供了管理和运行分布式应用程序的所有必要功能,例如:
1、负责集群中多节点上的计算任务分发、协调和调度 2、负责处理计算任务的失败 3、高效的在跨节点之间进行数据传输
集合上面介绍的能力,我们可以看到他是一个通用的执行引擎,在管理集群任务和数据的时候,处理非常的快速,同时还实现了高度的容错。
2)RDD抽象编程
RDD其实就是为spark应用程序开发人员提供的一组API,使开发人员能够轻松高效的执行大规模的数据处理,同时不必担心数据保存在集群的哪个节点上,也不需要额外关心机器处理故障。
备注:
1、rdd可能对大家看起来比较抽象,我们可以这么理解一下,RDD就是每一个对象,在整个spark应用程序开发中,每一个对象都是一个rdd,例如读取的数据是一个rdd,执行的一个转换操作也是一个rdd,写出数据也是一个rdd。
2、在spark中rdd在执行的时候适应性很强,会在失败时自动重新创建。
3、RDD是通过惰性并行转换构建的,也就是除非提前声明,否则在使用RDD的时候这个对象才会被创建。
4、rdd是可以被缓存的。
还没有评论,来说两句吧...