日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

分布式文件系统—HDFS—基本介绍

發布時間:2024/4/15 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式文件系统—HDFS—基本介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、HDFS相關概念

二、設計思路

三、HDFS總體架構

四、HDFS文件讀寫

五、HDFS優缺點


Hadoop簡介

Hadoop是Apache開源軟件基金會開發的運行于大規模普通服務器上用于大數據存儲、計算、分析的一種分布式存儲系統和分布式運行框架

其設計思想為使用普通機器(高性能、低成本)、數據冗余(HDFS)、并行化處理(MR)、移動計算(海量數據的情況下移動計算比移動數據更有效),其中思想基礎為使用普通機器,只有做到高性能和低成本,使用門檻低,Hadoop項目才會迅速普及,被大家運用。

一、HDFS相關概念

首先,它是一個文件系統,用于存儲文件,通過統一的命名空間——目錄樹來定位文件。其次,它是分布式的,由很多服務器聯合起來實現其功能,集群中的服務器都有各自清晰的角色定位。重要特性如下:

  • HDFS 中的文件在物理上是分塊存儲(block):塊的大小可以通過配置參數(dfs.blocksize)來規定,默認大小在 hadoop2.x 版本中是 128M,老版本中是 64M,hadoop3.x版本中是256M。
  • HDFS 文件系統會給客戶端提供一個統一的抽象目錄樹:客戶端通過路徑來訪問文件,形如為?hdfs://namenode:port/dir-a/dir-b/dir-c/file.data
hdfs://hadoop02:9000/soft/hadoop-2.6.5-centos-6.7.tar.gz
  • 目錄結構及文件分塊位置信息(元數據)的管理由 namenode 節點承擔,namenode 是 HDFS 集群主節點,負責維護整個 hdfs 文件系統的目錄樹,以及每一個路徑(文件)所對應的 block 塊信息(block 的 id,及所在的 datanode 服務器)。
  • 文件的各個 block 的存儲管理由 datanode 節點承擔,datanode 是 HDFS 集群從節點,每一個 block 都可以在多個 datanode 上存儲多個副本(副本數量也可以通過參數設置 dfs.replication,默認是 3)。
  • HDFS 是設計成適應一次寫入,多次讀出的場景,且不支持文件的修改。(PS:適合用來做數據分析,并不適合用來做網盤應用,因為,不便修改,延遲大,網絡開銷大,成本太高)

二、設計思路

HDFS 被設計成用來使用低廉的服務器來進行海量數據的存儲,那是怎么做到的呢?

  • 大文件被切割成小文件,使用分而治之的思想讓很多服務器對同一個文件進行聯合管理
  • 2每個小文件做冗余備份,并且分散存到不同的服務器,做到高可靠不丟失
  • 默認的數據塊大小為128MB(Hadoop-2.2版本之前為64MB)。所以,HDFS文件總是按照128MB被切分成不同的數據塊,每個數據塊盡可能地存儲于不同的DataNode中.不同于普通文件系統的是,當文件長度小于一個數據塊的大小時,該文件是不會占用整個數據塊空間

    ?

    三、HDFS總體架構

    HDFS采用Master/Slave(即:主/從)架構:一個HDFS集群是由一個NameNode和若干個DataNode組成。

  • 主節點 Namenode:集群老大,掌管文件系統目錄樹,處理客戶端讀且請求
  • SecondaryNamenode:嚴格說并不是 namenode 備份節點,主要給 namenode 分擔壓力之用
  • 從節點 Datanode:存儲整個集群所有數據塊,處理真正數據讀寫
  • 1.元數據節點(NameNode)

    元數據節點的作用是管理分布文件系統的命名空間,并將所有的文件和目錄的元數據保存到Linux本地文件系統的目錄之中.這些信息采用文件命名空間鏡像及編輯日志方式進行保存。此外,NameNode節點還保存了一個文件,該文件信息包括哪些數據塊以及這些數據塊分布在哪些DataNode之中.但這些信息并不永久存儲本地文件系統,而是在NameNode啟動時從各個DataNode收集而成。

    2.數據節點(DataNode)

    數據節點作用是保存HDFS文件的數據內容.在客戶端向HDFS寫入文件時,大數據文件將被切分成多個數據塊,為了保證HDFS的高吞吐量,NameNode將這些數據的存儲任務指派給不同的DataNode。每一個DataNode在授受任務之后直接從客戶端接收數據,經加密后寫入到Linux本地系統的相應目錄中。

    3.輔助元數據節點(Secondary NameNode)

    輔助元數據節點的作用是周期性地將元數據節點的鏡像文件fsimage和日志edits合并,以防日志文件過大.合并之后,fsimage文件也在輔助元數據節點保存一份,以便在元數據節點中的鏡像文件失敗時可以恢復。特別注意:Secondary NameNode不是NameNode出現問題時的備用節點。

    四、HDFS文件讀寫

    讀文件:客戶端向NameNode發送數據讀操作請求,NameNode向客戶端發送組成該文件的數據塊的位置列表(即每個數據塊存儲哪些DataNode之中),客戶端直接從這些DataNode讀取文件數據(在讀數據過程中,NameNode不參與文件的傳輸)

    ?

    寫文件:客戶端向NameNode發送數據寫操作請求,包括文件名和目錄路徑等部分元數據信息;NameNode告訴客戶端到哪個數據節點進行具體的數據寫入操作;客戶端直接將文件數據傳輸給DataNode,由DataNode的后臺程序負責把數據保存到Linux的本地文件系統之中.

    五、HDFS優缺點

    1. HDFS優點

    • 可構建在廉價機器上:通過多副本提高可靠性,提供了容錯和恢復機制
    • 高容錯性:數據自動保存多個副本,副本丟失后,自動恢復
    • 適合批處理:移動計算而非數據,數據位置暴露給計算框架
    • 適合大數據處理:GB、TB、甚至 PB 級數據,百萬規模以上的文件數量,10K+節點規模
    • 流式文件訪問:一次性寫入,多次讀取,保證數據一致性

    2. HDFS缺點

    不適于以下操作

    • 低延遲數據訪問:比如毫秒級,低延遲與高吞吐率
    • 小文件存取:占用 NameNode 大量內存 150b* 1000W = 15E,1.5G,尋道時間超過讀取時間
    • 并發寫入、文件隨機修改:一個文件只能有一個寫者,僅支持 append

    HDFS 不適合存儲小文件

    • 元信息存儲在 NameNode 內存中:一個節點的內存是有限的
    • 存取大量小文件消耗大量的尋道時間:類比拷貝大量小文件與拷貝同等大小的一個大文件
    • NameNode 存儲 block 數目是有限的:一個 block 元信息消耗大約 150 byte 內存,存儲 1 億個 block,大約需要 20GB 內存,如果一個文件大小為 10K,則 1 億個文件大小僅為 1TB(但要消耗掉 NameNode 20GB內存)。

    總結

    以上是生活随笔為你收集整理的分布式文件系统—HDFS—基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。