一:列舉hadoop生態的各個元件及其功能、以及各個元件之間的相互關係,以圖呈現並加以文字描述。
hadoop分布式檔案系統hdfs是針對谷歌分布式檔案系統(google file system,gfs)的開源實現,它是hadoop兩大核心組成部分之一,提供了在廉價伺服器集群中進行大規模分布式檔案儲存的能力。
hdfs具有很好的容錯能力,並且相容廉價的硬體裝置,因此,可以以較低的成本利用現有機器實現大流量和大資料量的讀寫。
hdfs採用了主從(master/sl**e)結構模型,乙個hdfs集群包括乙個名稱節點和若干個資料節點。名稱節點作為中心伺服器,負責管理檔案系統的命名空間及客戶端對檔案的訪問。
集群中的資料節點一般是乙個節點執行乙個資料節點程序,負責處理檔案系統客戶端的讀/寫請求,在名稱節點的統一排程下進行資料塊的建立、刪除和複製等操作。
2.mapreduce
mapreduce 是一種分布式並行程式設計模型,用於大規模資料集(大於1tb)的並行運算,它將複雜的、執行於大規模集群上的平行計算過程高度抽象到兩個函式:map和reduce。mapreduce極大方便了分布式程式設計工作,程式設計人員在不會分布式並行程式設計的情況下,也可以很容易將自己的程式執行在分布式系統上,完成海量資料集的計算。
3.yarn
yarn 是負責集群資源排程管理的元件。yarn 的目標就是實現「乙個集群多個框架」,即在乙個集群上部署乙個統一的資源排程管理框架yarn,在yarn之上可以部署其他各種計算框架,比如mapreduce、tez、storm、giraph、spark、openmpi等,由yarn為這些計算框架提供統一的資源排程管理服務(包括 cpu、記憶體等資源),並且能夠根據各種計算框架的負載需求,調整各自占用的資源,實現集群資源共享和資源彈性收縮。
4.hbase
hbase 是針對谷歌 bigtable 的開源實現,是乙個高可靠、高效能、面向列、可伸縮的分布式資料庫,主要用來儲存非結構化和半結構化的鬆散資料。
hbase可以支援超大規模資料儲存,它可以通過水平擴充套件的方式,利用廉價計算機集群處理由超過10億行元素和數百萬列元素組成的資料表
5.hive
hive是乙個基於hadoop的資料倉儲工具,可以用於對儲存在hadoop檔案中的資料集進行資料整理、特殊查詢和分析處理。
6.flume
flume 是 cloudera 公司開發的乙個高可用的、高可靠的、分布式的海量日誌採集、聚合和傳輸系統。
flume支援在日誌系統中定製各類資料傳送方,用於收集資料;同時,flume提供對資料進行簡單處理,並寫到各種資料接收方的能力。
7.sqoop
sqoop是sql-to-hadoop的縮寫,主要用來在hadoop和關聯式資料庫之間交換資料,可以改進資料的互操作性。
通過sqoop,可以方便地將資料從mysql、oracle、postgresql等關聯式資料庫中匯入hadoop(比如匯入到hdfs、hbase或hive中),或者將資料從hadoop匯出到關聯式資料庫,使得傳統關聯式資料庫和hadoop之間的資料遷移變得非常方便。
二:.對比hadoop與spark的優缺點。
hadoop
提到hadoop大的方向一般包括兩部分
一部分是map reduce計算引擎,一般說hadoop的缺點就是說的這部分
另一部分是hdfs儲存,目前應用還是很廣泛
map reduce的缺點
1.只能進行map和reduce操作
2.中間計算結果要儲存再磁碟,反覆讀取io操作會消耗大量資源
3.reduce操作在map之後,需要等並行的所有map任務完成之後才能進行reduce操作
以上2和3導致hadoop延遲較高
sprk針對mapreduce缺陷的改進
1.除了map和reduce操作還包含filter、group by、join等操作
2.中間結果儲存再記憶體中,對中間結果的重複讀取,節省時間和資源消耗
3.有向無環圖可以明確各stage間的依賴關係,避免像mapreduce一樣所有的reduce操作都要依賴全部的map執行完成
三:.如何實現hadoop與spark的統一部署?
由於hadoop生態系統中的一些元件所實現的功能,目前還是無法由spark取代的,比如,storm可以實現毫秒級響應的流計算,但是,spark則無法做到毫秒級響應。另一方面,企業中已經有許多現有的應用,都是基於現有的hadoop元件開發的,完全轉移到spark上需要一定的成本。因此,在許多企業實際應用中,hadoop和spark的統一部署是一種比較現實合理的選擇。
由於hadoop mapreduce、hbase、storm和spark等,都可以執行在資源管理框架yarn之上,因此,可以在yarn之上進行統一部署。這些不同的計算框架統一執行在yarn中,可以帶來如下好處:
1.計算資源按需伸縮;
2.不用負載應用混搭,集群利用率高;
3.共享底層儲存,避免資料跨集群遷移。
第一次作業
1.用較低的成本,開發出滿足客戶需求的軟體,開發的軟體可靠性高,易於維護和移植 2.分為設計階段,開發階段和測試執行階段 1 設計階段 分析客戶需求,明確要解決哪些問題,實現哪些功能,以及確定基本方法 2 開發階段 a.概要設計 畫出流程圖,進行模組化劃分,建立模組的層次結構以及呼叫關係 b.詳細設...
第一次作業
1.4 非計算機專業 程式和軟體有何不同?答 程式是通過計算機語言寫出來的具有許多演算法的摸板,是實現軟體功能的底層推手 推手的意思可以理解為動力 所以,程式是軟體的內在因子,而軟體是乙個或多個程式通過編譯器編譯出來的成品。1.3 查詢資料,解釋什麼是圖靈測試?答 指測試者與被測試者 乙個人和一台機...
第一次作業
1.解釋什麼是圖靈測試?圖靈測試 又稱 圖靈判斷 是圖靈提出的乙個關於機械人的著名判斷原則。一種測試機器是不是具備人類智慧型的方法。如果說現在有一台電腦,其運算速度非常快 記億容量和邏揖單元的數目也超過了人腦,而且還為這台電腦編寫了許多智慧型化的程式,並提供了合適種類的大量資料,使這台電腦能夠做一些...