初識Hadoop,讓你更快學習大數據
一.從起源開始聊起
hadoop的起源也就是谷歌著名的三大論文,或者可以說是谷歌三大論文的開源實現。Hadoop的核心組件有三個:HDFS,Hadoop MapReduce,HBase,分別是谷歌的GFS,Google MapReduce和BigTable的開源實現。
另外,有趣的是,Hadoop名字不是一個縮寫,而是一個生造出來的詞。是Hadoop之父Doug Cutting兒子毛絨玩具象命名的。
https://blog.csdn.net/zhongqi2513/article/details/80215748這篇文章為我們詳細介紹了hadoop自2002誕生之初到現在的詳細發展歷史,有興趣的讀者可以了解一下。
二.Hadoop的概念
Hadoop在官方上的解釋是:hadoop是一個分散式系統基礎架構,由apache基金會開發,用戶可以在不了解分散式底層細節的情況下,開發分散式程序。充分利用集群的威力高速運算和存儲。
所以說,hadoop主要解決的是海量數據的儲存和計算的問題。可以用於搭建大型數據倉庫,PB級數據的存儲,處理,分析,統計等業務。
hadoop可以分為狹義和廣義兩種:
1、 狹義的Hadoop只是Hadoop本身 (HDFS+MapReduce)。
有需要的聯繫我yxxy1717 2317384986
2、 廣義的Hadoop指的是Hadoop生態系統,Hadoop生態系統是一個很龐大的概念,hadoop是其中最重要最基礎的一個部分:生態系統的每一個子系統只解決某一個特定的問題域,不搞統一型的一個全能系統,而是小而精的多個小系統。
三.Hadoop生態系統
既然上面聊到了Hadoop的生態系統,就在這裡先簡單介紹一下,Hadoop的生態系統中有些什麼
這裡附上一張圖
可以看出來,Hadoop的生態系統是非常龐大的,下面對生態系統中的幾個主要部件作下簡要介紹
- HDFS Hadoop的分散式文件系統。是Hadoop體系中數據存儲管理的基礎。它是一個高度容錯的系統,能檢測和應對硬體故障,用於在低成本的通用硬體上運行。HDFS簡化了文件的一致性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。
- MapReduce(分散式計算框架) MapReduce是一種計算模型,用以進行大數據量的計算。其中Map對數據集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。Reduce則對中間結果中相同「鍵」的所有「值」進行規約,以得到最終結果。MapReduce這樣的功能劃分,非常適合在大量計算機組成的分散式並行環境里進行數據處理。
- Hive(基於Hadoop的數據倉庫)Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用於離線分析。
- Hbase(分散式列存資料庫) HBase是一個針對結構化數據的可伸縮、高可靠、高性能、分散式和面向列的動態模式資料庫。和傳統關係資料庫不同,HBase採用了BigTable的數據模型:增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對大規模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用MapReduce來處理,它將數據存儲和並行計算完美地結合在一起。
- Zookeeper(分散式協作服務) 解決分散式環境下的數據管理問題:統一命名,狀態同步,集群管理,配置同步等。
- Sqoop(數據同步工具) Sqoop是SQL-to-Hadoop的縮寫,主要用於傳統資料庫和Hadoop之前傳輸數據。數據的導入和導出本質上是Mapreduce程序,充分利用了MR的並行化和容錯性。
- Pig(基於Hadoop的數據流系統) 由yahoo!開源,設計動機是提供一種基於MapReduce的ad-hoc(計算在query時發生)數據分析工具。定義了一種數據流語言—Pig Latin,將腳本轉換為MapReduce任務在Hadoop上執行。通常用於進行離線分析。
- Mahout(數據挖掘演算法庫) Mahout的主要目標是創建一些可擴展的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。Mahout現在已經包含了聚類、分類、推薦引擎(協同過濾)和頻繁集挖掘等廣泛使用的數據挖掘方法。除了演算法,Mahout還包含數據的輸入/輸出工具、與其他存儲系統(如資料庫、MongoDB 或Cassandra)集成等數據挖掘支持架構。
- Flume(日誌收集工具) Cloudera開源的日誌收集系統,具有分散式、高可靠、高容錯、易於定製和擴展的特點。它將數據從產生、傳輸、處理並最終寫入目標的路徑的過程抽象為數據流,在具體的數據流中,數據源支持在Flume中定製數據發送方,從而支持收集各種不同協議數據。同時,Flume數據流提供對日誌數據進行簡單處理的能力,如過濾、格式轉換等。此外,Flume還具有能夠將日誌寫往各種數據目標(可定製)的能力。總的來說,Flume是一個可擴展、適合複雜環境的海量日誌收集系統。
- Oozie作業流調度引擎 Oozie是一個基於工作流引擎的伺服器,可以在上面運行Hadoop的Map Reduce和Pig任務。它其實就是一個運行在Java Servlet容器(比如Tomcat)中的Javas Web應用。
推薦閱讀:
※大數據給百姓帶來的便利,點開下面網址試試看。http: wx.allproof.net m ind...
※電力大數據是如何引領電網與新能源發展的?
※八字命理大數據 慧眼識渣有根據
※數據思維是一種新的思維方式 --《大數據時代》讀後感
※大數據告訴你,如何寫論文能上核心期刊