大数据也包含很多种类的框架,一般分成两类,即大数据计算框架和大数据存储框架。
大数据计算框架又可以按照执行方式分成两类:一类是执行一次就结束的、对计算时间要求不高的离线计算框架,另一种是对处理时间有严格要求的实时计算框架。
离线计算多用于模型的训练和数据的预处理,最经典的就是Hadoop的MapReduce方式了;而实时计算框架是要求立即返回计算结果的,快速响应请求,如Storm、Spark Streaming等框架,多用于简单的累加计数和基于训练好的模型进行分类等操作。
无论是离线计算还是实时计算,都需要持久地保存大量的清洗过的数据和计算结果,这就需要大数据存储框架来解决了。
经典的Hadoop HDFS就具备了动态扩容以及冗余化存储(存储多份数据)的能力。这样既能保证数据源增大时用户仍然可以像操作本地磁盘一样操作HDFS,又可以保证计算结果的安全性,它是在大数据存储中最主流的解决办法之一。
除了计算和存储,在完整的处理过程中,会加入一些NoSQL存储和一些小工具来提升用户的使用体验,毕竟世界并不是全部由结构化数据组成的。在大数据计算中要缓存一些中间结果或者进行快速的批量写入操作,那么我们会在计算和存储之间加入NoSQL存储引擎来存储需要的结果。再配合一些对传统SQL优化的工具,使SQL适用于体积更大的数据,就完成了大数据框架的大部分流程了