Spark是一个基于内存计算的大数据并行计算框架。所以,Spark并不能完全替代Hadoop,主要用于替代Hadoop中的MapReduce计算模型。
在实际应用中,大数据处理无非是以下几个类型:
复杂的批量数据处理,这种类型的处理时间跨度通常在数十分钟到数小时之间,处理这种数据的工具有Hadoop MapReduce;
基于历史数据的交互式查询,时间跨度一般在数十秒到数分钟之间,处理工具如Impala、Hive;
基于实时数据流的数据处理,这样的时间跨度一般在数百毫秒到数秒之间,处理工具如Storm。
可以看到,不同数据处理类型对应着不同处理工具,如果三种场景都存在的话,就需要同时部署这些工具,这就造成了一些问题,最直观的是维护难度增加、系统资源调度难度增加,还有就是不同场景之间输入输出数据数据格式不一致,应用时需要进行转换。
Spark的诞生就是基于这样的需求。