Hadoop原始碼分類概要整理

鬆伯發表於2017-07-02

  最近突然覺得, 很多掌握的都還是很淺的原理,需要更深入細粒度去了解整個分散式系統的運轉機制。於是。。開始作死而又作死而又作死的原始碼之旅。

  Hadoop包的功能總共有下列幾類:

  tool:提供一些命令列工具,如DistCp,archive

  mapreduce,:Hadoop的Map/Reduce實現

  filecache:提供HDFS檔案的本地快取,用於加快Map/Reduce的資料訪問速度

  fs:檔案系統的抽象,可以理解為支援多種檔案系統實現的統一檔案訪問介面

  hdfs:HDFS,Hadoop的分散式檔案系統實現

  ipc:一個簡單的IPC的實現,依賴於IO提供的編解碼功能

  io:表示層,將各種資料編碼/解碼,方便在網路上的傳輸

  net:封裝部分網路功能,如DNS,socket

  security:使用者和使用者組資訊

  conf:系統的配置引數

  metrics:系統攻擊資料的收集,用於網管範疇

  util:工具類

  record:根據DDL自動生成他們的編碼函式,目前可以提供C++和java

  http:基於Jetty的HTTP Servlet,使用者通過瀏覽器可以觀察檔案系統的一些狀態資訊和日誌

  log:提供HTTP訪問日誌的HTTP Servlet

 

一、RPC

  它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通訊程式之間攜帶資訊資料。

    RPC採用客戶機/伺服器模式,請求程式就是一個客戶機,而服務提供程式就是一個伺服器。例如HDFS的通訊就包括:

  1、Client-NameNode之間,其中NameNode是伺服器。

  2、Client-DataNode之間,其中DataNode是伺服器。

  3、DataNode-NameNode之間,其中NameNode是伺服器。

  4、DataNode-DataNode之間,其中某一個DataNode是伺服器,另一個是客戶端。

  org.apache.hadoop.rpc中包含Client類和Server類。Server類是一個抽象類,類RPC封裝了Server,利用反射,把某個物件的方法開放出來,變成RPC中的伺服器。

 

二、DataNode與NameNode

  一個HDFS叢集可能包含上千DataNode節點,這些DataNode定時與NameNode通訊,為了減輕NameNode的負擔,NameNode上並不永久儲存DataNode上那些資料塊資訊,而是通過DataNode啟動時上報,來更新NameNode上的對映表。

        相關包:org.apache.hadoop.hdfs.server.common、org.apache.hadoop.hdfs.server.datanode…

  所有和資料塊相關的操作,都在FSDataset相關的類中進行處理,一個DataNode上可以指定多個Storage來儲存資料塊,由於HDFS規定了一個目錄能存放Block的數目,所以一個storage上存在多個目錄。對應的,FSDataset中用FSVolume來對應一個Storage,FSDir對應一個目錄,所有的FSVolume由FSVolumeSet管理,FSDataset中通過一個FSVolumeSet物件,就可以管理它的所有儲存空間。

       相關包:org.apache.hadoop.hdfs.server.dataNode.fsDataSet

  NameNode作為系統檔案目錄的管理者,DataNode關注的是資料塊,NameNode儲存的主要資訊是檔名-資料塊,資料塊-DataNode列表。 DataNode實現了InterDatanodeProtocol和ClientDatanodeProtocol,剩下的,由NameNode實現。

  相關包:org.apache.hadoop.hdfs.server.protocol、org.apache.hadoop.hdfs.protocol、org.apache.hadoop.hdfs.server.namenode   (重點FSNamesystem.java)

 

三、MapReduce

     相關包:org.apache.hadoop.mapreduce.JobContext、org.apache.hadoop.mapreduce、org.apache.hadoop.mapreduce.lib.*(包含inputFomat等..)

  這些還是很小的一部分,但是一點一點深入好了~

  

     


相關文章