hadoop學習記錄--hdfs檔案上傳過程源碼解析

來源:互聯網
上載者:User

標籤:組成   過程   node   技術   namenode   熱備   問控制   設定檔   簡單的   

  本節並不大算為大家講接什麼是hadoop,或者hadoop的基礎知識因為這些知識在網上有很多詳細的介紹,在這裡想說的是關於hdfs的相關內容。或許大家都知道hdfs是hadoop底層儲存模組,專門用於存放資料,那麼在進行檔案上傳的時候hdfs是如何進行的呢?我們按照宏觀和微觀來進行相關解析工作。

  首先需要向大家解釋如下幾個概念:

  (1) secondaryNamenode: 其實起初我對SN的理解也和大部分人相同,認為SN是NN(nameNode)的一個即時熱備份實現HA,並且在一次筆試的過程中還寫錯了,尷尬,後台經過查看相關的書籍發現其實並不是這麼一回事,SN主要是完成的Edits和fsImage的合并工作,以減少NN的工作壓力。對於錯誤的理解其實並不是沒有道理,現在版本的hadoop支援進行HA的即時備份。後面的章節後說。

  (2) fsImage和edits: 雖然說不希望在這講一些概念,但是該說的還是得說。簡單的解釋: fsimage包含Hadoop檔案系統中的所有目錄和檔案idnode的序列化資訊,其中對於檔案包含了檔案的修改時間、訪問時間、塊大小和組成一個檔案塊資訊等。對於檔案夾而言包含的資訊主要有修改時間、存取控制許可權等資訊。而Edits檔案主要是進行用戶端對檔案操作的記錄,比如上傳新檔案等。並且edits檔案會定期與fsimage檔案進行合併作業。

  宏觀的寫入過程:

  具體的流程如下: 

  1.首先是用戶端將檔案進行分塊,分塊的大小標準按照設定檔中給定的大小。

  2.然後用戶端通知namenode即將上傳檔案,namenode建立制定目錄,並根據設定檔中指定的備份數量及機架感知原理進行檔案分配,比如備份數量3由機架感知將3分檔案分別儲存在機架1的host2,機架2的host1和host3中。

  3. 用戶端與指定的datanode建立流傳輸通道,並向機架1中的host2進行檔案傳輸,傳輸完成之後host2向機架2中的host1進行檔案備份。host2備份完成之後將資料區塊拷貝到同一個機架的host3中。

  4.3台機器都完成這個過程之後host2,host1,host3分別向namenode發起通知說檔案已經儲存完成。同時host2向用戶端發起通知。

  5.用戶端收到host2返回的請求之後向namenode發起通知---已經完成資料寫入。則整個流程運行完成。

hadoop學習記錄--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.