Spark生态系统
一、Spark设计理念
在实际应用中,大数据处理主要包括以下三个类型:
复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间
基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间
基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间
当同时存在以上三种场景时,就需要同时部署三种不同的软件
比如: MapReduce / Impala(基于内存的SQL查询系统,速度比Hive快) / Storm
这样做难免会带来一些问题:
不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换
不同的软件需要不同的开发和维护团队,带来了较高的使用成本
比较难以对同一个集群中的各个系统进行统一的资源协调和分配
Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统
既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等
Spark可以部署在资源管理器YARN之上,提供一站式的大数据解决方案
因此,Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理
二、Spark生态系统组件的应用场景
下表中Spark生态系统中批量数据处理实际由SparkCore来实现。SparkCore也是SparkSQL、SparkStreaming的基础。

浙公网安备 33010602011771号