第一章《數據之路,始於Hadoop》第一節 Hadoop 基礎介紹

第一節    hadoop介紹node

    大數據時代最重要的論文是Google三篇,分佈講述了GFS、MapReduce和BigTable。而依照前兩篇論文設計的開源項目Hadoop,則迅速風靡,成爲了大數據行業的事實標準。Google的論文建議要看,尤爲是前2偏,其實並無難度,看完對於Hadoop的理解會更加清晰。web

    大數據爲何會興起?沒有大數據之前是怎麼作的?這2個問題其實以個人經驗回答不是很合適,可是既然提到,就僅從我的的經驗出發來講下必要性進入大數據行業第一節公司是一個移動SDK公司,主要是嵌入SDK經過展現廣告、APP推薦下載等來給開發者帶來收入。當時的第一個項目是分析這些SDK一天的日誌(apache日誌),對下載的每一個APP按省份作一個排序。任務交給了SDK開發團隊,具體的方案不清楚,可是一天的數據須要跑10小時以上(記憶模糊,4年前文章提到過此事)。後來用Hadoop,寫了簡單的MR處理,大概10多分鐘就搞定了,這就是大數據存在的意義,也能從一個角度反應爲何會興起。
apache

    關於Hadoop,首先必需要介紹下概念?如今有不少初學者,一上來就問Datanode是什麼?Datanode和NodeManager能不能在一臺節點上?對於這種問題,個人回答都是「過小白,先看看書吧」。對於Hadoop的學習,不少人從Cloudera Manager或者Ambari開始,我我的很是不建議。我仍是以爲實戰前,先看看書,至少翻一本熟悉了之後,其餘的能夠邊學邊研究。而一開始就極度依賴這些工具,概念不清楚,至少會讓人以爲不專業,不是認真學習的料子。api

  1.     版本和分支:
    參考官方wiki,
    https://wiki.apache.org/hadoop/Roadmap,目前hadoop主流分支有3條,分別是hadoop 1.X、hadoop 2.X和hadoop 3.X。
    Hadoop1.X是從hadoop 0.20發展而來,我還記得12剛開始玩hadoop的時候就是0.20.2,那時候在公司用的就是cdh3u3,後來的公司升級到了1.0,可是一直到14年離職,也都仍是1.X,沒有升級到2.x,另外朋友私下聊天,其實那個時候仍是以1.X爲主的,2.X通常是新建集羣纔會使用。主要的緣由就是由於升級中的風險,升級的詳細過程董西城老師有文章詳細介紹:
    http://dongxicheng.org/mapreduce-nextgen/hadoop-upgrade-to-version-2/
    Hadoop 2.XHadoop2.0除了api的改動,對外界最大的感知就是增長了Yarn做爲mapreduce的調度系統,計算資源也從單一的slot改成了內存/CPU等資源,按nodemanager不一樣能夠區別配置。此外hadoop2.X還解決了一些1.X中的大坑點,好比單點故障,提供了基於QJM和NFS2種不一樣的解決方案。
    Hadoop3.X當前資料不是不少,其中值得期待的就是實現了Erasure Coding(糾刪碼),EC的強大之一是能夠將以往的3副本,減小爲1.5副本,還能保證數據不會丟失,這一強大功能在雲存儲領域普遍應用。安全


    後續的系列介紹中,咱們選擇的版本是Hadoop2.X中的,2.6.4,由於文檔好找:  http://hadoop.apache.org/docs/r2.6.4/    app


  2. 概念介紹(簡介,詳細的拆解在HDFS和YARN的篇章講述):工具

    HDFS:Hadoop Distributed File System oop

    NameNode:hdfs主節點,不作實際存儲主要管理hdfs的元數據信息、維護文件塊和節點的對應關係以及維護用戶對文件的修改信息。
    DataNode:hdfs的工做節點,實際的數據處理和存儲節點。
    SecondaryNameNode:輔助節點,協助NameNode合併fsimage和edits文件,主要是作checkpoint的工做,在namenode宕機是能夠及時恢復。

    CheckPoint Node:和Secondary NameNode做用同樣,只是由於Secondary名字容易混淆而添加,使用方法
    Backup Node:和Secondary、CheckPoint相似,提供checkpoint功能,可是會保留和namenode徹底一致的信息

    Yarn:學習

    ResourceManager:主節點,處理客戶端請求;管理NodeManager和Application Master;管理資源的調度和分配大數據

    NodeManager:工做節點,單個節點的資源管理;處理來自RM和AM的命令

    Application Master:數據切分;爲application申請資源,分配任務;監控任務的運行

                    WebAppProxyServer:顧名思義,yarn web頁面上對application的代理,主要是出於安全考慮

                    JobHistoryServer:主要負責處理任務的日誌信息

            介紹了概念,開頭的問題,DataNode和NodeManager能不能部署到同一個節點就顯而易見了。答案是徹底能夠,並且這樣會很好,前提是要看好機器的配置,作好劃分。


第二節    搭建hadoop集羣,敬請期待

相關文章
相關標籤/搜索