大數據 - hadoop基礎概念 - HDFS

Hadoop之HDFS的概念及用法服務器

一、概念介紹分佈式

  Hadoop是Apache旗下的一個項目。他由HDFS、MapReduce、Hive、HBase和ZooKeeper等成員組成。oop

  HDFS是一個高度容錯的分佈式文件系統。他可以提升吞吐量的數據訪問,適合存儲海量的大文件。spa

  HDFS由四部分構成:HDFS client、NameNode、DataNode、Secondary NameNode。blog

 各組件概念:
  一、HDFS client

  二、NameNode內存

  用於維護集羣內元數據,也就是保存文件存儲位置,集羣存儲方式爲一個大文件存儲在多個服務器中,並且爲了維護健壯性,一個文件有多個備份,這些備份位置都須要存儲在NameNode中。it

 。。。待編輯io

 

a集羣

sdf

 

二、操做(此版本爲Hadoop2.7,網上說的另外一種editlog和fsimage的存儲方式爲更早版本cli

  a) 啓動HDFS

    從fsimage文件中讀取元數據信息到內存中。

  b) 讀文件

    1. 掃描HDFS中的元素據信息。客戶端訪問NameNode,NameNode把DataNode存放數據的位置等信息(存儲的元數據信息),從內存中取來。

    2. 客戶端下載文件。客戶端根據NameNode提供的元數據信息,與DataNode簡歷RPC通訊,進行IO操做。

  c) 寫文件

    1. 客戶端與NameNode創建通訊。判斷存儲空間的剩餘量,判斷所存放的文件的存放分佈方式。

    2. NameNode元數據信息落盤。生成一個editlog文件,保存元數據信息和元數據的操做。

    3. 客戶端與DadaNode創建通訊。進行IO操做

  d) NameNode數據固化

    NameNode在空閒的時候,會把editlog中的元數據信息和操做信息,合併到fsimage(二進制信息,讀寫快速)文件中。

    每次HDFS啓動時,NameNode都會把未合併到fsimage中的數據信息,合併過去。

    SecondartNameNode經過RPC通訊,把editlog中的元數據信息和操做信息,合併到fsimage文件中,並推送給NameNode。

相關文章
相關標籤/搜索