三分鐘入門大數(shù)據(jù)之大數(shù)據(jù)基本的組件環(huán)境是什么?

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




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


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


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

MapReduce:用于實際進行計算數(shù)據(jù)的編程模型,其特質(zhì)強調(diào)分布式與并行??梢哉f,MapReduce是真正實現(xiàn)對大量數(shù)據(jù)進行操作和處理的工具。其具體的實現(xiàn)和例子,我們會在之后的文章中詳細介紹。

ZooKeeper:負責大數(shù)據(jù)系統(tǒng)中,統(tǒng)一管理調(diào)度整個倉庫運作的工程班。我們可以想象得到,一個復雜的系統(tǒng)想要能夠穩(wěn)定運作下去,其必須需要一個相應的角色,專職負責統(tǒng)一調(diào)度整個系統(tǒng)的資源,發(fā)布任務,協(xié)調(diào)各個組件之間的運行。ZooKeeper就是這樣一個角色,可以這樣說,ZooKeeper的存在,使得分布式的系統(tǒng)在協(xié)調(diào)運作上得到的保證。

HBase:存放數(shù)據(jù)的架子。當我們有了存儲和處理數(shù)據(jù)的倉庫以后,我們肯定不能將數(shù)據(jù)雜亂的堆積到倉庫中吧?HBase就是倉庫中的架子,我們在拿到數(shù)據(jù)后,會將數(shù)據(jù)放到相應的架子中,這樣以后當我們需要使用或者處理數(shù)據(jù)時,只需要去找到相應的架子就好了。所以HBase具備一些數(shù)據(jù)庫的功能,然而這里要強調(diào)一下,HBase是一個Nosql的數(shù)據(jù)庫。稍后我們會詳細說明,Nosql數(shù)據(jù)庫與常用的數(shù)據(jù)庫之間的區(qū)別與聯(lián)系是什么。

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

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

Mahout:機器學習的功能組件庫??梢赃@樣說,大數(shù)據(jù)系統(tǒng)想要最大化的利用數(shù)據(jù)創(chuàng)造價值,往往需要機器學習相關的功能,這個時候,就是我們用到Mahout的時候了。

Flume:收集記錄數(shù)據(jù)操作日志的工具。如此復雜的大數(shù)據(jù)系統(tǒng),想要運作起來,肯定需要一個完備可靠的日志系統(tǒng),用來記錄各個組件每時每刻運行的任務,運行狀況,使用的資源情況,任務分發(fā)的情況等,F(xiàn)lume正是為此而存在的。

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

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

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

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Zookeeper用于集群主備切換。 YARN讓集群具備更好的擴展性。 Spark沒有存儲能力。 Spark的Ma...
    Yobhel閱讀 7,604評論 0 34
  • 【什么是大數(shù)據(jù)、大數(shù)據(jù)技術】 大數(shù)據(jù),又稱巨量資料,指的是所涉及的數(shù)據(jù)資料量規(guī)模巨大到無法在合理時間內(nèi)通過傳統(tǒng)的應...
    kimibob閱讀 2,901評論 0 51
  • 當前,整個互聯(lián)網(wǎng)正在從IT時代向DT時代演進,大數(shù)據(jù)技術也正在助力企業(yè)和公眾敲開DT世界大門。當今“大數(shù)據(jù)”一詞的...
    吳瑞文閱讀 1,538評論 1 11
  • 悠悠五千年浩浩蕩蕩, 昔日恥辱上下求索今已雪, 昂首闊步新時代引領未來!
    zhulinliushui閱讀 427評論 0 3
  • 下午在車上時,隊友告訴我昨晚他們喝酒聊天的內(nèi)容了。 是的,昨晚他和弟弟吃燒烤酒料喝啤酒,聽說三個人聊到一點多才睡。...
    牽著一只小狗看世界閱讀 190評論 1 1

友情鏈接更多精彩內(nèi)容