1. 闡述hadoop生態系統中,hdfs, mapreduce, yarn, hbase及spark的相互關係,為什麼要引入yarn和spark。
hadoop是乙個能夠對大量資料進行分布式處理的軟體框架。具有可靠、高效、可伸縮的特點。
hadoop的核心是hdfs和mapreduce,hadoop2.0還包括yarn
hdfs集群:負責海量資料的儲存。
(2)yarn集群:負責海量資料運算時的資源排程。
(3)mapreduce:它其實是乙個應用程式開發包。
hdfs
hdfs(hadoop分布式檔案系統)源自於google的gfs**,發表於2023年10月,hdfs是gfs的實現版。hdfs是hadoop體系中資料儲存管理的基礎,它是乙個高度容錯的系統,能檢測和應對硬體故障,在低成本的通用硬體上執行。hdfs簡化了檔案的一次性模型,通過流式資料訪問,提供高吞吐量應用程式資料訪問功能,適用帶有資料集的應用程式。hdfs提供一次寫入多次讀取的機制,資料以塊的形式,同時分布儲存在不同的物理機器上。
hdfs預設的最基本的儲存單位是64mb的資料塊,和普通檔案系統一樣,hdfs中的檔案被分成64mb一塊的資料塊儲存。它的開發是基於流資料模式訪問和處理超大檔案的需求。
mapreduce
mapduce(分布式計算框架)源自於google的mapreduce**,發表於2023年12月,hadoop mapreduce是google reduce 轉殖版。mapreduce是一種分布式計算模型,用以進行海量資料的計算。它遮蔽了分布式計算框架細節,將計算抽象成map 和reduce兩部分,其中map對資料集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。reduce則對中間結果中相同「鍵」的所有「值」進行規約,以得到最終結果。mapreduce非常適合在大量計算機組成的分布式並行環境裡進行資料處理。
hbase
hbase(分布式列存資料庫)源自google的bigtable**,發表於2023年11月,hbase是google table的實現。hbase是乙個建立在hdfs之上,面向結構化資料的可伸縮、高可靠、高效能、分布式和面向列的動態模式資料庫。hbase採用了bigtable的資料模型,即增強的稀疏排序對映表(key/value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。hbase提供了對大規模
yarn
yarn(分布式資源管理器)是下一代mapreduce,即mrv2,是在第一代mapreduce基礎上演變而來的,主要是為了解決原始hadoop擴充套件性差,不支援多計算框架而提出的。yarn是下一代hadoop計算平台,是乙個通用的執行時框架,使用者可以編寫自己的極端框架,在該執行環境中執行。
spark
spark(記憶體dag計算模型)是乙個apche專案,被標榜為「快如閃電的集群計算」,它擁有乙個繁榮的開源社群,並且是目前最活躍的apache專案。最早spark是uc berkeley amp lab所開源的類hadoop mapreduce的通用計算框架,spark提供了乙個更快、更通用的資料處理平台。和hadoop相比,spark平台可以讓你的程式在記憶體中執行時速度提公升100倍,或者在磁碟上執行時速度提公升10倍。
2. spark已打造出結構一體化、功能多樣化的大資料生態系統,請簡述spark生態系統。
spark 生態系統以spark core 為核心,能夠讀取資源排程管理,完成應用程式分析與處理。
spark把中間資料放到記憶體中,迭代運算效率高。mapreduce中計算結果需要落地,儲存到磁碟上,這樣勢必會影響整體速度,而spark支援dag圖的分布式平行計算的程式設計框架,減少了迭代過程中資料的落地,提高了處理效率。
spark容錯性高。spark引進了彈性分布式資料集rdd (resilient distributed dataset) 的抽象,它是分布在一組節點中的唯讀物件集合,這些集合是彈性的,如果資料集一部分丟失,則可以根據「血統」(即充許基於資料衍生過程)對它們進行重建。另外在rdd計算時可以通過checkpoint來實現容錯,而checkpoint有兩種方式:checkpoint data,和logging the updates,使用者可以控制採用哪種方式來實現容錯。
最後,spark更加通用。spark提供的資料集操作型別有很多種。另外各個處理節點之間的通訊模型不再像hadoop只有shuffle一種模式,使用者可以命名、物化,控制中間結果的儲存、分割槽等。
3. 用**描述你所理解的spark執行架構,執行流程
第一次作業
1.用較低的成本,開發出滿足客戶需求的軟體,開發的軟體可靠性高,易於維護和移植 2.分為設計階段,開發階段和測試執行階段 1 設計階段 分析客戶需求,明確要解決哪些問題,實現哪些功能,以及確定基本方法 2 開發階段 a.概要設計 畫出流程圖,進行模組化劃分,建立模組的層次結構以及呼叫關係 b.詳細設...
第一次作業
1.4 非計算機專業 程式和軟體有何不同?答 程式是通過計算機語言寫出來的具有許多演算法的摸板,是實現軟體功能的底層推手 推手的意思可以理解為動力 所以,程式是軟體的內在因子,而軟體是乙個或多個程式通過編譯器編譯出來的成品。1.3 查詢資料,解釋什麼是圖靈測試?答 指測試者與被測試者 乙個人和一台機...
第一次作業
1.解釋什麼是圖靈測試?圖靈測試 又稱 圖靈判斷 是圖靈提出的乙個關於機械人的著名判斷原則。一種測試機器是不是具備人類智慧型的方法。如果說現在有一台電腦,其運算速度非常快 記億容量和邏揖單元的數目也超過了人腦,而且還為這台電腦編寫了許多智慧型化的程式,並提供了合適種類的大量資料,使這台電腦能夠做一些...