今天加米谷大数据就来简单介绍一下Spark的适用场景。
大数据的业务分类
从大数据处理需求来看,大数据的业务大概可以分为以下三类:
1、复杂的批量数据处理,通常的时间跨度在数十分钟到数小时之间;
2、基于历史数据的交互式查询,通常的时间跨度在数十秒到数分钟之间;
3、基于实时数据流的数据处理,通常的时间跨度在数百毫秒到数秒之间。
Spark的适用场景
从Spark的设计理念(基于内存的迭代计算框架)出发,其最适合有迭代运算的或者需要多次操作特定数据集的应用场合。并且迭代次数越多,读取的数据量越大,Spark的应用效果就越明显。
因此,对于机器学习之类的“迭代式”应用,Spark可谓拿手好戏,要比HadoopMapReduce快数十倍。另外,SparkStreaming因为内存存储中间数据的特性,处理速度非常快,也可以应用于需要实时处理大数据的场合。
Spark不适用的场合
对于那种异步细粒度更新状态的应用,例如Web服务的存储或增量的Web爬虫和索引,也就是对于那种增量修改的应用模型不适合。
Spark也不适合做超级大的数据量的处理,这里所说的“超级大”是相对于这个集群的内存容量而言的,因为Spark要将数据存储在内存中。一般来说,10TB以上(单次分析)的数据就可以算是“超级大”的数据了。