大資料學習筆記2--hdfs工作原理及源碼分析

來源:互聯網
上載者:User

標籤:hdfs   namenode   源碼   

windows下配置hadoop

  1. hadoop 安裝包解壓,路徑不要有特殊字元

  2. lib和bin直接解壓出來的不可用,需要自己重新編譯

  3. 配置環境變數:HADOOP_HOME,path中添加:bin目錄

namenode

  • 整個檔案系統的管理節點。它維護著整個檔案系統的檔案分類樹,檔案/目錄的元資訊和每個檔案對應的資料區塊列表。接收使用者的操作請求。

響應用戶端的請求,上傳檔案:

  1. client申請上傳檔案,namenode查看中繼資料資訊,查看用戶端申請的路徑是否已存在

  2. namenode返回可用的datanode

  3. client直接存取第一個datanode,上傳第一個block,datanode向namenode報告block資訊,第一個block建立一個pipeline,向其他datanode拷貝block副本,鏈式向下傳遞副本,達到配置的副本數。

namenode寫中繼資料

  • 記憶體中:meta.data

  • 磁碟:fsimage、edits log

  • 先修改edits

  • 同步到meta.data

    fsimage結構:

  • 檔案名稱,副本數,blockid,block儲存的機器

  • NameNode(FileName, replicas, block-ids,id2host…)

  • /test/a.log, 3 ,{blk_1,blk_2},
    [{blk_1:[h0,h1,h3]},{blk_2:[h0,h2,h4]}]

secondary namenode 同步修改fsimage

  1. 通知namendoe切換edits,不再使用之前的edits檔案
  2. secondary namenode從namenode下載edits和fsimage檔案
  3. secondary namenode將他們載入到記憶體,進行合并,產生新的fsimage.chkpoint
  4. 將新的fsimage檔案回傳到namenode
  5. namenode用新的fsimage替換舊的fsimage

checkpoint

  • fs.checkpoint.period 指定兩次checkpoint的最大時間間隔,預設3600秒。

  • fs.checkpoint.size
    規定edits檔案的最大值,一旦超過這個值則強制checkpoint,不管是否到達最大時間間隔。預設大小是64M。

節點間通訊:

  • 遠程方法調用rpc
  • 大資料量的傳輸

FileSystem擷取過程

  1. FileSystem.get(new URI(HDFS_PATH), new Configuration());//擷取檔案對象
  2. CACHE.get(uri, conf)//從緩衝Map中擷取
  3. fs = createFileSystem(uri, conf);//建立新的fs
  4. clazz = getFileSystemClass(uri.getScheme(), conf);//擷取fs類
  5. ReflectionUtils.newInstance(clazz, conf)//執行個體化fs
  6. fs.initialize(uri, conf);//初始化fs參數
  7. dfs = new DFSClient(uri, conf, statistics)//擷取dfs用戶端
  8. proxyInfo =
    NameNodeProxies.createProxyWithLossyRetryHandler(conf,nameNodeUri,
    ClientProtocol.class, numResponseToDrop)//通過RPC擷取和NN通訊的用戶端代理對象
  9. this.namenode = proxyInfo.getProxy()//獲得namenode代理對象

fs持有DistributedFileSystem dfs,dfs中持有DFSClinet dfsc對象,dfsc中持有namenode代理對象

大資料學習筆記2--hdfs工作原理及源碼分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.