1. 闡述hadoop生態系統中,hdfs, mapreduce, yarn, hbase及spark的相互關係,為什麼要引入yarn和spark。
hdfs是hadoop體系中資料儲存管理的基礎,它是乙個高度容錯的系統,能檢測和應對硬體故障,在低成本的通用硬體上執行。
hbase構建在hdfs之上的分布式,面向列的nosql資料庫。hbase中儲存的資料可以使用mapreduce來處理,它將資料儲存和平行計算完美地結合在一起。
yarn是乙個分布式資源統一管理器,可以在上面執行各種計算框架(包括mapreduce、spark、storm、mpi等)。
spark是乙個快速、通用的大規模資料處理引擎,和mapreduce在同乙個層級,主要解決分布式計算框架的問題。spark可以說是對hadoop mapreduce的改進,同時又相容hadoop家族,它可以執行在yarn之上,負責儲存的仍然是hdfs,它替代的是mapreduce計算框架,獲取更高更快更強的計算速度。
hadoop雖然已成為大資料技術的事實標準,但其本身還存在諸多缺陷,最主要的缺陷是mapreduce計算模型延遲過高,無法勝任實時、快速計算的需求,因而只適用於離線批處理的應用場景。spark最大的特點就是將計算資料、中間結果都儲存在記憶體中,大大減少了i/o開銷。因此,spark更適合於迭代運算比較多的資料探勘與機器學習運算。
2. spark已打造出結構一體化、功能多樣化的大資料生態系統,請簡述spark生態系統。
spark的生態系統主要包含了spark core、spark sql、spark streaming、structured streaming、mllib和graphx等元件,各個元件的具體功能如下:
spark core:spark core包含spark最基礎和最核心的功能,如記憶體計算、任務排程、部署模式、故障恢復、儲存管理等,主要面向批資料處理。
spark sql:spark sql是用於結構化資料處理的元件,允許開發人員直接處理rdd,同時也可查詢hive,hbase等外部資料來源。
spark streaming:spark streaming是一種流計算框架,可以支援高吞吐量、可容錯處理的實時流資料處理,其核心思路是將流資料分解成一系列短小的批處理作業,每個短小的批處理作業都可以使用spark core進行快速處理。
structrued streaming:structured streaming是一種基於spark sql引擎構建的、可擴充套件且容錯的流處理引擎。
mllib:mllib提供了常用機器學習演算法的實現,包括聚類、分類、回歸、協同過濾等,降低了機器學習的門檻,開發人員只需具備一定的理論知識就能進行機器學習的工作。
graphx:graphx是spark中用於圖計算的api,可認為是pregel在spark上的重寫和優化,graphx效能良好,擁有豐富的功能和運算子,能在海量資料上自如地執行複雜的圖演算法。
3. 用**描述你所理解的spark執行架構,執行流程。
spark執行架構由四部分組成:
1.集群資源管理器(cluster manager):yarn或者mesos等資源管理框架
2.執行作業任務的工作節點(worker node)
3.每個應用的任務控制節點(driver program/driver)
4.每個工作節點上負責具體任務的執行程序(executor)
spark的執行基本流程 :
1、當乙個spark應用被提交時,首先需要為這個應用構建起基本的執行環境,即由任務控制節點(driver)建立乙個sparkcontext物件,由sparkcontext負責和資源管理器的通訊以及進行資源的申請、任務的分配和監控等,sparkcontext會向資源管理器註冊並申請執行executor的資源,sparkcontext可以看成是應用程式連線集群的通道。
2、資源管理器為executor分配資源,並啟動executor程序,executor運**況將隨著"心跳"傳送到資源管理器上。
3、sparkcontext根據rdd的依賴關係構建dag圖,dag圖提交給dag排程器進行解析,將dag圖分解成多個『階段』(每個階段都是乙個任務集),並且計算出各個階段之間的依賴關係,然後把乙個個「任務集」提交給底層的任務排程器進行處理;executor向sparkcontext申請任務,任務排程器將任務分發給executor執行,同時,sparkcontext將應用程式**發放給executor。
4、任務在executor上執行,把執行結果反饋給任務排程器,然後反饋給dag排程器,執行完畢後寫入資料並釋放所有資源。
第一次作業(Spark架構與執行流程)
1.闡述hadoop生態系統中,hdfs,mapreduce,yarn,hbase及spark的相互關係。答 hdfs是所有hadoop生態的底層儲存架構,它主要完成了分布式儲存系統的邏輯,凡是需要儲存的都基於其上構建。yarn是負責集群資源管理的部分,這個資源包括計算資源和儲存資源,因此它也支撐了...
第一次作業
1.用較低的成本,開發出滿足客戶需求的軟體,開發的軟體可靠性高,易於維護和移植 2.分為設計階段,開發階段和測試執行階段 1 設計階段 分析客戶需求,明確要解決哪些問題,實現哪些功能,以及確定基本方法 2 開發階段 a.概要設計 畫出流程圖,進行模組化劃分,建立模組的層次結構以及呼叫關係 b.詳細設...
第一次作業
1.4 非計算機專業 程式和軟體有何不同?答 程式是通過計算機語言寫出來的具有許多演算法的摸板,是實現軟體功能的底層推手 推手的意思可以理解為動力 所以,程式是軟體的內在因子,而軟體是乙個或多個程式通過編譯器編譯出來的成品。1.3 查詢資料,解釋什麼是圖靈測試?答 指測試者與被測試者 乙個人和一台機...