Spark:快速的通用的分布式計算框架
概述和特點:
1)?Speed,(開發(fā)和執(zhí)行)速度快?;趦?nèi)存的計算;DAG(有向無環(huán)圖)的計算引擎;基于線程模型;
2)Easy of use,易用?。 多語言(Java,python,scala,R); 多種計算API可調(diào)用;可在交互式模式下運行;
3)Generality? 通用??梢砸徽臼浇鉀Q多個不同場景的應(yīng)用業(yè)務(wù)
Spark Streaming :用來做流處理
MLlib : 用于機器學(xué)習(xí)
GraphX:用來做圖形計算的
4)?Runs Everywhere??:
?。?)可以運行在Hadoop的yarn,Mesos,standalone(Sprk自帶的)這些資源管理和調(diào)度的程序之上
(2) 可以連接包括HDFS,Cassandra,HBase,S3這些數(shù)據(jù)源
產(chǎn)生背景:
1)MapReduce 局限性
?。?)代碼繁瑣(官網(wǎng)有WordOCunt案例)
?。?)效率低下:
a) 有結(jié)果寫入磁盤,降低效率;
b) 通過進程模型,銷毀創(chuàng)建效率低
?。?)只能支持map和reduce方法
?。?) 不適合迭代多次,交互式,流水的處理
2) 框架的多樣化
?。?)批處理(離線):MapReduce,Hive,Pig
?。?)流式處理(實時):Storm,Jstorm
?。?)交互式計算 :Impala
綜上: 框架的多樣化導(dǎo)致生產(chǎn)時所需要的框架繁多,學(xué)習(xí)運維成本較高,那么有沒有一種框架,
既能執(zhí)行效率高,學(xué)習(xí)成本低,還能支持批處理和流式處理與交互計算呢?
結(jié)論:Spark誕生
Spark與Hadoop對比:
Hadoop生態(tài)系統(tǒng)
Hive:數(shù)據(jù)倉庫
R:數(shù)據(jù)分析
Mahout:機器學(xué)習(xí)庫
pig:腳本語言,跟Hive類似
Oozie:工作流引擎,管理作業(yè)執(zhí)行順序
Zookeeper:用戶無感知,主節(jié)點掛掉選擇從節(jié)點作為主的
Flume:日志收集框架
Sqoop:數(shù)據(jù)交換框架,例如:關(guān)系型數(shù)據(jù)庫與HDFS之間的數(shù)據(jù)交換
Hbase : 海量數(shù)據(jù)中的查詢,相當于分布式文件系統(tǒng)中的數(shù)據(jù)庫
BDAS:Berkeley Data Analytics Stack(伯克利數(shù)據(jù)分析平臺)
? Spark與Hadoop生態(tài)圈對比
注意:在對實時的查詢來說,Spark只是一個快速的分布式計算框架,所以沒有存儲的框架,但是可以連接多個存儲的數(shù)據(jù)源
Hadoop與Spark對比
MapReduce與Spark對比:
MapReduce:若進行多次計算,MP則需要將上一次執(zhí)行結(jié)果寫入到磁盤,叫做數(shù)據(jù)落地
Spark:直接將存儲在內(nèi)存中的結(jié)果拿來使用,沒有數(shù)據(jù)落地
Spark與Hadoop的協(xié)作性
Spark概述和與Hadoop對比