作为大数据领域主流运用的大数据计算框架之一,Spark这几年的发展态势也越来越好了。一方面是由于Spark在不断地完善,更适用于现阶段的大数据处理;另一方面则是因为Spark确实在大数据处理上表现出了强大的优势。
根据Spark官方的定义,Spark是一个快速的、通用的分布式计算系统。
简简单单一句话,其实对于Spark以及做出了相当精炼的总结,一个是快,一个是通用。
快速,是指Spark在大数据计算当中所体现出来的性能优势,同样的运算过程,Spark相对于早期的Hadoop,能够做到计算速度提升10-100倍,在面对时效性要求更高的数据处理任务上,Spark有压倒性的优势。
通用,则是源于Spark提供高级API,如:Java、Scala、Python和R,通过多种语言可以实现Spark编程;并且Spark还提供多种高级工具,如:Spark SQL处理结构化数据、MLib处理机器学习、GraphX用于图计算、Spark Streaming用于流数据处理。
Spark将系统作为一个大一统的软件栈,大数据处理各个场景、各种需求都能在这里找到相应的解决方案,这也是Spark受到越来越多的企业和开发者青睐的原因。
Spark系统的核心,也就是Spark Core,通过灵活丰富的接口,将SQL、Streaming、MLib、GraphX等等的请求,都转换成Spark Core分布式运行。
核心组件Spark SQL,是Spark提供的SQL接口,用户使用Spark SQL可以像使用传统数据库一样使用SQL。例如:创建表、删除表、查询表、join表等。
核心组件Spark Streaming,可以处理流式数据,还可以对接Kafka。
Spark的数据处理核心架构分为四层,直接面向用户业务系统层、负责分布式计算的计算层、负责提供实时查询的数据库层、以及负责分布式存储的存储层。当系统收到数据处理请求,计算层会把数据从数据库、列式存储(数仓)中拉去到Spark中进行分布式计算。