hadoop零基礎入門:hadoop 課程好用嗎

小夥伴們,大家好!

歡迎大家來到數據與智能小課堂,今天的課程內容為《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、內存、磁碟等等)

「大數據入門」2.Hadoop生態系統

② Hadoop2.0的組成包含:hdfs、MapReduce、yarn和其他組件。

Hdfs負責數據存儲,MapReduce負責數據計算,yarn負責資源調度

「大數據入門」2.Hadoop生態系統

4. Hadoop生態系統的組成

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

「大數據入門」2.Hadoop生態系統

① 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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:49
下一篇 2024-12-09 14:49

相關推薦

發表回復

登錄後才能評論