三分鐘入門大數據之大數據基本的組件環境是什麼?

哈嘍,大家好,我是漢斯老師。近幾年來,互聯網行業由於較高的薪資收入,受到許多人的追捧。很多年輕的學子,或是其他行業的有志青年,都想要投身到這個行業中來。然而一方面受到“互聯網寒冬”的影響,最近頻頻傳出各家知名互聯網公司裁員縮編的消息;另一方面,大量的人才湧入,又使得互聯網產業在職場上呈現出供過於求的特徵,並最終導致了職場上的激烈競爭。那麼互聯網行業未來的潛力在哪裡?我們又應該在哪個方向上發力,才能保證自己可以獲得一份高薪而穩定的工作?基於多年的互聯網行業從業經驗,漢斯老師在這裡向大家推薦大數據方向,希望通過本人的《三分鐘入門大數據》和《十分鐘精通大數據》等系列文章,幫助所有有志瞭解學習大數據的朋友掌握大數據的相關知識,也歡迎所有對互聯網行業以及大數據領域感興趣的朋友前來交流。

三分鐘入門大數據之大數據基本的組件環境是什麼?

大數據系統,或者說大數據生態體系的組成,是大部分大數據開發人員必須要了解和掌握的知識。那麼最基本的大數據系統都包含什麼呢?首先讓我們來看一下下面這張非常經典的大數據系統組件圖吧。

三分鐘入門大數據之大數據基本的組件環境是什麼?

以上就是一個基本的大數據系統所包含的組件了。當然,對於一些剛進入這個領域的朋友,可能對這張圖的解讀不是那麼明確,以下我會用對應的一張圖和相應的文字來說明各個組件的作用。

三分鐘入門大數據之大數據基本的組件環境是什麼?

HDFS: 用於存放一切信息的分佈式的文件系統。大數據系統由於其涉及到的數據量較大所以往往需要仰賴於一個數據倉庫系統,將所有的數據能夠分門別類地存儲起來,而HDFS就是這樣一個倉庫。需要注意一點,HDFS並不是我們通常實際用來查詢或者處理數據的數據倉庫組件,其更像是倉庫本身,是一個偏硬件,偏系統化的概念,用於將所有的信息都囊括進去。

MapReduce:用於實際進行計算數據的編程模型,其特質強調分佈式與並行。可以說,MapReduce是真正實現對大量數據進行操作和處理的工具。其具體的實現和例子,我們會在之後的文章中詳細介紹。

ZooKeeper:負責大數據系統中,統一管理調度整個倉庫運作的工程班。我們可以想象得到,一個複雜的系統想要能夠穩定運作下去,其必須需要一個相應的角色,專職負責統一調度整個系統的資源,發佈任務,協調各個組件之間的運行。ZooKeeper就是這樣一個角色,可以這樣說,ZooKeeper的存在,使得分佈式的系統在協調運作上得到的保證。

HBase:存放數據的架子。當我們有了存儲和處理數據的倉庫以後,我們肯定不能將數據雜亂的堆積到倉庫中吧?HBase就是倉庫中的架子,我們在拿到數據後,會將數據放到相應的架子中,這樣以後當我們需要使用或者處理數據時,只需要去找到相應的架子就好了。所以HBase具備一些數據庫的功能,然而這裡要強調一下,HBase是一個Nosql的數據庫。稍後我們會詳細說明,Nosql數據庫與常用的數據庫之間的區別與聯繫是什麼。

Hive:查找數據的工具。從前面這個定義可以看出來,Hive其實和HBase在功能上有很多相似的地方,它們都可以查找數據,然而Hive本質上只是查找數據的功能,其不能更新數據(但是可以寫入)。而HBase中,常用的增刪改查都是支持的。

Pig:處理數據的工具。Pig是基於MapReduce的,所以當直接使用MapReduce開發相應的數據處理比較困難的話,Pig就是我們會想要使用的工具了。這裡要說一下,在經過多年的發展後,大數據各個組件其實都在擴展其各自功能,目前能夠用來簡便開發MapReduce的工具中,Pig已經不是首選了,然而在最初建立大數據體系時,Pig是非常重要的一個組成部分。我們稍後也會講一下,究竟Pig,Hive和Hbase的區別是什麼。

Mahout:機器學習的功能組件庫。可以這樣說,大數據系統想要最大化的利用數據創造價值,往往需要機器學習相關的功能,這個時候,就是我們用到Mahout的時候了。

Flume:收集記錄數據操作日誌的工具。如此複雜的大數據系統,想要運作起來,肯定需要一個完備可靠的日誌系統,用來記錄各個組件每時每刻運行的任務,運行狀況,使用的資源情況,任務分發的情況等,Flume正是為此而存在的。

Sqoop:輸送數據進入倉庫的工具。想想看,當我們整個數據系統搭建起來後,我們肯定需要有一個工具,能夠把原始的數據,輸送到數據系統中吧?Sqoop的工作就是這樣的,其可以定時抽取目標數據庫中的相應數據,發送到我們的大數據系統中。

Ambari:將上面所有組件打包起來的平臺。想想看,上面那麼多的組件,如果一個一個都要我們手動去部署安裝,甚至要調試和設置,這個效率之低令人不寒而慄。那麼當我們清楚了我們會用到的這些組件後,能不能找到一個工具,當我們面對一個全新的環境中,可以把整個大數據系統快速打包部署下去,這正是Ambari平臺的價值所在。此外,我們在實際運作的時候,針對維護人員,需要有一個工具能夠直觀的監控整個大數據系統的運作狀況,這也是如Ambari這樣的大數據平臺的作用之一。

限於篇幅的關係,以上僅僅是最基礎,最早期的大數據系統所囊括的組件體系,在接下來的文章中,筆者會逐步向一一詳細說明各個組件的作用和原理等。


分享到:


相關文章: