日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Hadoop是什么?一句話理解

 愛吃魚的俊懶貓 2019-05-28

 Hadoop(MapReduce&HDFS)

1.學習目的(前言)

  在從業(yè)了六年IT生涯里,做個實施顧問、業(yè)務顧問、BA需求分析師、項目經(jīng)理,現(xiàn)在重新定位自己,在新公司做起了開發(fā)顧問,雖然經(jīng)歷過很多轉折、跨度也有點大。但是抓住了機會,開始接觸大數(shù)據(jù)行業(yè)了。雖然目前工作中的都是使用Hive SQL進行開發(fā),沒有涉及太多真正大數(shù)據(jù)的東西,但是覺得學習大數(shù)據(jù)還是很有必要,所以利用項目的空余時間對Hadoop進行了學習整理,內容可能對于現(xiàn)在的Hadoop來說已經(jīng)有點過時了,但是我覺得老知識還是根基,于是便有了以下的文章,用于以后自己備忘和要學習Hadoop的小伙伴一起學習進步。

2.Hadoop核心思想

  Hadoop是在分布式服務器集群上存儲海量數(shù)據(jù)并運行分布式分析應用的一個平臺,其核心部件是HDFS與MapReduce

  HDFS是一個分布式文件系統(tǒng):傳統(tǒng)文件系統(tǒng)的硬盤尋址慢,通過引入存放文件信息的服務器Namenode和實際存放數(shù)據(jù)的服務器Datanode進行串接。對數(shù)據(jù)系統(tǒng)進行分布式儲存讀取。

  MapReduce是一個計算框架:MapReduce的核心思想是把計算任務分配給集群內的服務器里執(zhí)行。通過對計算任務的拆分(Map計算\Reduce計算)再根據(jù)任務調度器(JobTracker)對任務進行分布式計算。

3.HDFS文件系統(tǒng)和MapReduce計算框架在Hadoop生態(tài)圈中的應用

  HDFS負責Hadoop生態(tài)圈的數(shù)據(jù)存取工作

  MapReduce負責Hadoop生態(tài)圈的數(shù)據(jù)運算工作

  Hadoop生態(tài)圈使用HDFS文件系統(tǒng)進行存取數(shù)據(jù),數(shù)據(jù)被分散的保存在集群的各個服務器上,在計算數(shù)據(jù)時使用MapReduce結合HDFS進行邏輯運算取出數(shù)據(jù)。

4.Master/Slave的架構理念

  Hadoop使用(Master/Slave)主從架構進行分布式儲存和分布式計算。Master負責分配和管理任務,Slave負責實際執(zhí)行任務。

  MapReduce中裝載有JobTracker的服務器負責進行Master任務,裝載有TaskTracker的服務器負責進行Slave任務。

  HDFS中裝載有Namenode的服務器負責進行Master任務,裝載有Datanode的服務器負責進行Slave任務。

5.HDFS&MapReduce的設計思路

  HDFS:

    將文件進行切塊處理,再通過文件信息服務器Namenode存放切塊的文件信息存放地址,實際存放數(shù)據(jù)的服務器Datanode存在切塊后的數(shù)據(jù)。

    系統(tǒng)默認:每個片塊大小為64M,以保證尋址速度;數(shù)據(jù)會寫入3個Datanode中,以保證更高的容錯性;

    HDFS還設計了Secondary Namenode來更新Namenode,以避免日志文件過大

    HDFS Client幫助Namenode對寫入讀取數(shù)據(jù)進行預處理,進行文件的分塊與發(fā)送讀取操作。Namenode負責為數(shù)據(jù)任務尋址

  MapReduce:

    通過JobClient生成任務運行文件,并在JobTracker進行調度指派TaskTracker完成任務。

    JobTracker分為把任務文件進行分解并派送到TaskTracker的程序JobinProgress和執(zhí)行調度器的TaskScheduler

    JobinProgress把作業(yè)分解成Map計算和Reduce計算并放置到TaskTracker服務器中

6.HDFS&MapReduce組件介紹

  HDFS:

    Namenode(Master):管理著每個文件中各個塊所在的數(shù)據(jù)節(jié)點的位置信息

    Namespace image:記錄每個文件的存在位置信息

    Edit log:記錄每個文件的位置移動信息

    Datanode(Slave):記錄著服務器內所儲存的數(shù)據(jù)塊的列表

    Secondary Namenode:更新并備份Namenode

    HDFS Client:進行文件的分塊與文件的發(fā)送讀取

  MapReduce:

    JobClient:用于把用戶的作業(yè)任務生成Job的運行包,并存放到HDFS中。

    JobinProgress:把Job運行包分解成MapTask和ReduceTask并存放于TaskTracker中

    JobTracker(Master):進行調度管理TaskTracker執(zhí)行任務

    TaskTracker(Slave):執(zhí)行分配下來的Map計算或Reduce計算任務

7.Hadoop運行機制

  HDFS:

    Namenode使用鏡像文件(Namespace image)和操作日志文件(edit log)對數(shù)據(jù)進行記錄。(保存在緩存和磁盤中)

    Secondary Namenode進行更新時的操作:

      1.在Namenode創(chuàng)建一個新的操作日志,將新的操作記錄寫入到新的操作日志中;

      2.將Namenode的鏡像文件和操作日志拷貝到Secondary Namenode中;

      3.在Secondary Namenode中讀取鏡像文件到內存,并執(zhí)行日志文件中的所有操作,生產(chǎn)新的鏡像文件;

      4.把Secondary Namenode中創(chuàng)建的鏡像文件拷貝到Namenode中;

      5.Namenode中使用新的鏡像文件和操作日志替代原來的文件;

  存數(shù)據(jù):

      1.HDFS Client對文件分塊并向Namenode發(fā)送寫數(shù)據(jù)請求

      2.Namenode把block信息記錄下來,并返回可寫入的Datanode

      3.HDFS Client向指定的Datanode傳送數(shù)據(jù)

      4.傳送成功后,Datanode會向Namenode和HDFS Client發(fā)送成功通知

  讀數(shù)據(jù):

      1.HDFS Client從Namenode中獲取文件塊的位置

      2.HDFS Client根據(jù)Namenode返回的文件信息去Datanode相關位置中讀取

  MapReduce:

    通過JobClient把用戶的作業(yè)任務轉換成job.xml、job.jar、job.split,適合JobTracker執(zhí)行的文件

      1.job.xml文件記錄了Job的詳細配置信息

      2.job.jar保存了用戶定義的關于job的map、reduce操縱

      3.job.split保存了job任務的切片信息

    JobClient會為作業(yè)向JobTracker申請Jobid,并以Jobid命名把xml、jar、split文件放置進HDFS中

    JobinProgress會把JobClient創(chuàng)建的Job拷貝到JobTracker本地文件系統(tǒng),并創(chuàng)建JobStatus和Job的mapTask、reduceTask隊列來跟蹤Job的狀態(tài)信息。

    JobTracker默認執(zhí)行一下調度法則

      1.先進先出:集群內的資源統(tǒng)一進行使用,執(zhí)行先進隊列先執(zhí)行的原則。

      2.公平調度:按用戶分配集群內的資源,每個用戶只能在指定的資源內運行調度。

      3.隊列調度:可以設置多個隊列,每個隊列都可以進行置頂?shù)馁Y源調度

    TaskTracker向JobTracker發(fā)送心跳報告及執(zhí)行命令

8.MapReduce集群的配置

服務器     守護進程                 說明     

server1    namenode           namenode節(jié)點    

server2    jobtracker                     任務主節(jié)點      

server3    secondary namenode     secondary namenode

dserver1    datanode tasktracker     數(shù)據(jù)節(jié)點 

dserver2    datanode tasktracker     數(shù)據(jù)節(jié)點

dsdrver3    datanode tasktracker     數(shù)據(jù)節(jié)點 

后感:

  在寫這篇文章的時候,知識點不斷在更新(ps:甚至大v們對同一個事情的理解也有不太一致的地方,再ps:上述文章內容完全是小粉的個人理解),甚至連文章架構也改了很多次。但是對于學習來說,我覺得這個是一件好事兒,建議也在學習hadoop的小伙伴也可以對自己的知識進行整理學習,有自己的理解。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多