小夥伴們,大家好!
歡迎大家來到數據與智能小課堂,今天的課程內容為《Hadoop生態系統》。
本次內容將分為四個部分為大家講解:Hadoop簡介、Hadoop的特點、Hadoop1.0與2.0的區別、Hadoop生態系統的組成。
1. Hadoop簡介
說到hadoop不得不提起一個人——Doug Cutting,他是hadoop之父、Apache Lucene的創始人。
Hadoop是Apache旗下的開源的分散式計算平台,它可以運行在計算機集群之上,提供可靠的、可擴展的分散式計算功能。Hadoop的核心是分散式文件系統(HDFS)和並行編程框架MapReduce。
Hadoop與三遍論文密不可分:
① 2003年,谷歌發布的分散式文件系統GFS的論文,可以用於解決海量數據存儲的問題。
② 2004年,谷歌發布了MapReduce的論文,可以用於解決海量數據計算的問題。
③ 2006年,谷歌發布了BigTable的論文,它是以GFS為底層數據存儲的分散式存儲系統。
| 年份 | 谷歌 |
| 2003年 | 谷歌分散式文件系統GFS的論文 |
| 2004年 | 谷歌MapReduce的論文 |
| 2006年 | 谷歌BigTable的論文 |
GFS、MapReduce、BigTable就是我們經常說的「三輛馬車」。
Hadoop與這三篇論文的關係是這樣的:
Hadoop中的HDFS是GFS的開源實現;Hadoop中的MapReduce是谷歌MapReduce的開源實現;Hadoop中的HBase是谷歌BigTable的開源實現。
2. hadoop的特點
① 跨平台性:hadoop是基於java語言開發的,有很好的跨平台性,可以運行在Linux平台上;
② 高可靠性:hadoop中的HDFS是分散式文件系統,可以將海量數據分布冗餘存儲在不同的機器節點上,即使是某個機器副本上發生故障,其他的機器副本也能正常運行;
③ 高容錯性:HDFS把把文件分布存儲在很多不同的機器節點上,能實現自動保存多個副本,因此某個節點上的任務失敗後也能實現自動重新分配;
④ 高效性:hadoop的核心組件HDFS和MapReduce,一個負責分散式存儲一個負責分散式處理,能夠處理PB級別的數據;
⑤ 低成本與高擴展:hadoop在廉價的計算機集群上就可以運行,因此成本比較低,並且可以擴展到幾千個計算機節點上,完成海量數據的存儲和計算。
3. Hadoop1.0和2.0的區別
Hadoop1.0與2.0的最大區別就是,hadoop2.0在1.0的基礎上增加了一個yarn框架。
① Hadoop1.0的組成包含:hdfs、MapReduce和其他組件。
Hdfs負責數據存儲,MapReduce負責數據計算以及資源調度(在進行數據處理的時候是要進行資源分配的,比如用多少CPU、內存、磁碟等等)

② Hadoop2.0的組成包含:hdfs、MapReduce、yarn和其他組件。
Hdfs負責數據存儲,MapReduce負責數據計算,yarn負責資源調度

4. Hadoop生態系統的組成
Hadoop除了有兩大核心組件HDFS 和MapReduce之外,還包括yarn、hbase、hive、pig、mahout、zookeeper、sqoop、flume、Apache Ambari等功能組件。

① HDFS:hadoop分散式文件系統,可以運行在大型的廉價計算機集群上,並以流的方式讀取和處理海量文件。HDFS要掌握的概念有NameNode、DataNode和Secondary Namenode,後面會有專門章節為大家講解。
② Yarn:資源調度和管理框架,其中包含ResourceManager、ApplicationMaster和NodeManager。ResourceManager負責資源管理,ApplicationMaster負責任務調度和監控,NodeManager 負責執行任務。
③ MapReduce:分散式並行編程框架,核心思想是「分而治之」。MapReduce=Map+Reduce。Map函數負責分片的工作,reduce函數負責整合歸約。
④ HBase:是谷歌bigtable的開源實現。它區別於傳統關係資料庫的一點是:基於列式存儲。傳統資料庫是基於行的存儲,而HBase是基於列的存儲,具有高效可靠的處理非結構化數據的能力。
⑤ Hive:是基於hadoop的數據倉庫工具,能對數據集進行簡單處理,它擁有類似SQL語言的查詢語言hive-sql。
⑥ Pig:是一種數據流語言,提供了類似sql的語言pig latin,可以用來查詢半結構化數據集。
⑦ Mahout:是Apache的一個開源項目,提供一些分類、聚類、過濾等等機器學習領域經典演算法。
⑧ Zookeeper:是個高效的可靠的分散式協同工作系統。
⑨ Sqoop:sql-to-hadoop的縮寫,意思就是在關係資料庫與hadoop之間做數據交換。
⑩ Flume:海量日誌收集、聚合、傳輸系統。它也能對數據進行簡單的處理。
⑪ Apache Ambari:是一種支持Apache Hadoop集群的安裝、部署、配置和管理的工具。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/226211.html
微信掃一掃
支付寶掃一掃