1.列舉hadoop生態的各個元件及其功能、以及各個元件之間的相互關係,以圖呈現並加以文字描述。
答:主要的核心元件有hdfs和mapreduce,其他還包括zookeeper、hbase、hive、pig、mahout、sqoop、flume、ambari等功能元件
hdfs:hdfs具有很好的容錯能力,並且相容廉價的硬體裝置,因此,可以以較低的成本利用現有機器實現大流量和大資料量的讀寫。
mapreduce:一種分布式並行程式設計模型,用於大規模資料集(大於1tb)的並行運算,它將複雜的、執行於大規模集群上的平行計算過程高度抽象到兩個函式:map和reduce。
zookeeper:解決分布式環境下的資料管理問題:統一命名,狀態同步,集群管理,配置同步等。
hbase:針對結構化資料的可伸縮,高可靠,高效能,分布式和面向列的動態模式資料庫。hbase中儲存的資料可以使用mapreduce來處理,它將資料儲存和平行計算完美結合在一起。
hive:hive定於了一種類似sql的查詢語言(hql)將sql轉化為mapreduce任務在hadoop上執行。
pig:定義了一種資料流語言-pig latin,將指令碼轉換為mapreduce任務在hadoop上執行。通常用於離線分析
mahout:建立一些可擴充套件的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地建立智慧型應用程式。
sqoop:主要用於傳統資料庫和hadoop之間傳輸資料。資料的匯入和匯出本質上是mapreduce程式,充分利用了mr的並行化和容錯性。
flume:cloudera開源的日誌收集系統,具有分布式,高可靠,高容錯,易於定製和擴充套件的特點。
2.對比hadoop與spark的優缺點。
(1)實現原理的比較
hadoop和spark都是平行計算,兩者都是用mr模型進行計算
hadoop乙個作業稱為乙個job,job裡面分為map task和reduce task階段,每個task都在自己的程序中執行,當task結束時,程序也會隨之結束;
(2)兩者的各方面比較
(1)spark對標於hadoop中的計算模組mr,但是速度和效率比mr要快得多;
(2)spark沒有提供檔案管理系統,所以,它必須和其他的分布式檔案系統進行整合才能運作,它只是乙個計算分析框架,專門用來對分布式儲存的資料進行計算處理,它本身並不能儲存資料;
(3)spark可以使用hadoop的hdfs或者其他雲資料平台進行資料儲存,但是一般使用hdfs;
(4)spark可以使用基於hdfs的hbase資料庫,也可以使用hdfs的資料檔案,還可以通過jdbc連線使用mysql資料庫資料;spark可以對資料庫資料進行修改刪除,而hdfs只能對資料進行追加和全表刪除;
(5)spark資料處理速度秒殺hadoop中mr;
(6)spark處理資料的設計模式與mr不一樣,hadoop是從hdfs讀取資料,通過mr將中間結果寫入hdfs;然後再重新從hdfs讀取資料進行mr,再刷寫到hdfs,這個過程涉及多次落盤操作,多次磁碟io,效率並不高;而spark的設計模式是讀取集群中的資料後,在記憶體中儲存和運算,直到全部運算完畢後,再儲存到集群中;
(7)spark是由於hadoop中mr效率低下而產生的高效率快速計算引擎,批處理速度比mr快近10倍,記憶體中的資料分析速度比hadoop快近100倍(源自官網描述);
(8)spark中rdd一般存放在記憶體中,如果記憶體不夠存放資料,會同時使用磁碟儲存資料;通過rdd之間的血緣連線、資料存入記憶體中切斷血緣關係等機制,可以實現災難恢復,當資料丟失時可以恢復資料;這一點與hadoop類似,hadoop基於磁碟讀寫,天生資料具備可恢復性;
(9)spark引進了記憶體集群計算的概念,可在記憶體集群計算中將資料集快取在記憶體中,以縮短訪問延遲,對7的補充;
(10)spark中通過dag圖可以實現良好的容錯。
(3)spark相對hadoop的優越性
(1)spark基於rdd,資料並不存放在rdd中,只是通過rdd進行轉換,通過裝飾者設計模式,資料之間形成血緣關係和型別轉換;
(2)spark用scala語言編寫,相比j**a語言編寫的hadoop程式更加簡潔;
(3)相比hadoop中對於資料計算只提供了map和reduce兩個操作,spark提供了豐富的運算元,可以通過rdd轉換運算元和rdd行動運算元,實現很多複雜演算法操作,這些在複雜的演算法在hadoop中需要自己編寫,而在spark中直接通過scala語言封裝好了,直接用就ok;
(4)hadoop中對於資料的計算,乙個job只有乙個map和reduce階段,對於複雜的計算,需要使用多次mr,這樣涉及到落盤和磁碟io,效率不高;而在spark中,乙個job可以包含多個rdd的轉換運算元,在排程時可以生成多個stage,實現更複雜的功能;
(5)hadoop中中間結果存放在hdfs中,每次mr都需要刷寫-呼叫,而spark中間結果存放優先存放在記憶體中,記憶體不夠再存放在磁碟中,不放入hdfs,避免了大量的io和刷寫讀取操作;
(6)hadoop適合處理靜態資料,對於迭代式流式資料的處理能力差;spark通過在記憶體中快取處理的資料,提高了處理流式資料和迭代式資料的效能;
3.如何實現hadoop與spark的統一部署?
答:一方面,由於hadoop生態系統中的一些元件所實現的功能,目前還是無法由spark取代的,比如,storm可以實現毫秒級響應的流計算,但是,spark則無法做到毫秒級響應。另一方面,企業中已經有許多現有的應用,都是基於現有的hadoop元件開發的,完全轉移到spark上需要一定的成本。因此,在許多企業實際應用中,hadoop和spark的統一部署是一種比較現實合理的選擇。
由於hadoop mapreduce、hbase、storm和spark等,都可以執行在資源管理框架yarn之上,因此,可以在yarn之上進行統一部署。這些不同的計算框架統一執行在yarn中,可以帶來如下好處:
一.計算資源按需伸縮;二.不用負載應用混搭,集群利用率高;三.共享底層儲存,避免資料跨集群遷移。
一 大資料概述
1.列舉hadoop生態的各個元件及其功能 以及各個元件之間的相互關係,以圖呈現並加以文字描述。hdfs 分布式儲存系統。yarn 資源排程。mapreduce 任務計算。hive 讓hadoop集群擁有關係型資料庫的sql體驗,本質是hadoop的乙個外掛程式,如果有統計,加減乘除等計算任務就會將...
作業一 大資料概述與學習資源
2 選擇乙個你感興趣的領域應用資料思維進行分析決策的案例。遊戲上使用大資料的地方很多。聚類就是一種方法。聚類是對所有的玩家進行的分類,比常規的維度要多,要全方位的對玩家進行分析,聚類相當於將n個散亂的點通過機器學習的演算法聚為一類,這一類的點之間會是最相似的。我們可以通過大資料分析流失玩家和潛在的付...
作業一 大資料概述與學習資源
1.資料型別 主要是聊天記錄。微博 造成不同的比例 3者都屬於社交資料。2.選擇乙個你感興趣的領域應用資料思維進行分析決策的案例。遊戲上使用大資料的地方很多。聚類就是一種方法。聚類是對所有的玩家進行的分類,比常規的維度要多,要全方位的對玩家進行分析,聚類相當於將n個散亂的點通過機器學習的演算法聚為一...