大數(shù)據(jù)也包含很多種類的框架,一般分成兩類,即大數(shù)據(jù)計(jì)算框架和大數(shù)據(jù)存儲框架。
大數(shù)據(jù)計(jì)算框架又可以按照執(zhí)行方式分成兩類:一類是執(zhí)行一次就結(jié)束的、對計(jì)算時(shí)間要求不高的離線計(jì)算框架,另一種是對處理時(shí)間有嚴(yán)格要求的實(shí)時(shí)計(jì)算框架。
離線計(jì)算多用于模型的訓(xùn)練和數(shù)據(jù)的預(yù)處理,最經(jīng)典的就是Hadoop的MapReduce方式了;而實(shí)時(shí)計(jì)算框架是要求立即返回計(jì)算結(jié)果的,快速響應(yīng)請求,如Storm、Spark Streaming等框架,多用于簡單的累加計(jì)數(shù)和基于訓(xùn)練好的模型進(jìn)行分類等操作。
無論是離線計(jì)算還是實(shí)時(shí)計(jì)算,都需要持久地保存大量的清洗過的數(shù)據(jù)和計(jì)算結(jié)果,這就需要大數(shù)據(jù)存儲框架來解決了。
經(jīng)典的Hadoop HDFS就具備了動態(tài)擴(kuò)容以及冗余化存儲(存儲多份數(shù)據(jù))的能力。這樣既能保證數(shù)據(jù)源增大時(shí)用戶仍然可以像操作本地磁盤一樣操作HDFS,又可以保證計(jì)算結(jié)果的安全性,它是在大數(shù)據(jù)存儲中最主流的解決辦法之一。
除了計(jì)算和存儲,在完整的處理過程中,會加入一些NoSQL存儲和一些小工具來提升用戶的使用體驗(yàn),畢竟世界并不是全部由結(jié)構(gòu)化數(shù)據(jù)組成的。在大數(shù)據(jù)計(jì)算中要緩存一些中間結(jié)果或者進(jìn)行快速的批量寫入操作,那么我們會在計(jì)算和存儲之間加入NoSQL存儲引擎來存儲需要的結(jié)果。再配合一些對傳統(tǒng)SQL優(yōu)化的工具,使SQL適用于體積更大的數(shù)據(jù),就完成了大數(shù)據(jù)框架的大部分流程了