一、Spark系统
spark相当于是一个优化了Hadoop里面MapReduce的程序,它主要以scala编程为基础。
在实际应用中,大数据处理主要包括以下几个类型:
复杂的批量数据处理:时间跨度通常在数十分钟到数小时之间;(主要用Spark Core来实现)
基于历史数据的交互式查询:时间跨度通常在数十秒到数分钟之间;(主要用Spark SQL来实现)
基于实时数据流的数据处理:时间跨度通常在数百毫秒到数秒之间。(主要用Spark Streaming和Structured Streaming来实现)
基于历史数据的挖掘:(主要用MLlib来实现)
图结构的处理:(主要用GraphX来实现)
二、RDD
MapReduce框架都是把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销。虽然,类似Pregel等图计算框架也是将结果保存在内存当中,但是,这些框架只能支持一些特定的计算模式,并没有提供一种通用的数据抽象。RDD就是为了满足这种需求而出现的,它提供了一个抽象的数据架构。
本节内容未进行摘抄,请参考1.3 RDD的设计与运行原理和spark部署和Mooc上的第三章的3.3 SPark运行架构和3.4spark部署的的所有内容