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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdfs通过接口退出安全模式_Hadoop之HDFS简介

發布時間:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdfs通过接口退出安全模式_Hadoop之HDFS简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

奇技指南HDFS作為運行在通用硬件上的分布式文件系統,和現有的分布式文件系統既有很多的共同點,也存在很多的差異。本文從HDFS是什么開始介紹,包括了HDFS架構、HDFS的讀寫、各個組件的作用、具體操作以及優缺點。給出了HDFS在分布式存儲上的具體方案,可以使讀者快速、清晰的理解HDFS系統。。本文轉載自360云計算公眾號。作者:于桐

主要內容

  • HDFS是什么?是干什么用的?
  • HDFS的架構是怎么樣的?
  • HDFS的怎樣進行讀寫?副本怎樣放置?
  • HDFS各個組件的作用?
  • HDFS的文件操作命令有哪些?
  • HDFS的優缺點是什么?
  • 引言

    有這樣一個需求:

    由于公司某業務mysql服務器過保,為防止數據丟失,需要備份mysql數據庫,這些庫目前已經只讀,每個庫約1.5T,大概有130個庫,共需要200T左右的空間,并且希望數據不易丟失,恢復數據速度快。

    部分解決方案:

    1)單機存儲

    有如下問題:

  • 磁盤損壞或機器down機則無法下載;
  • 單塊磁盤的讀寫io會很高;
  • 單塊磁盤不能完整存儲3個完整的庫(存儲大文件),只能存儲2個,空間部分浪費
  • 平時如果不用做數據恢復,機器cpu、內存等利用率低
  • 2)分布式存儲

    可選用分布式存儲,如HDFS、CEPH、S3等等。

    HDFS是什么?是干什么用的?

    HDFS(Hadoop Distributed File System)被設計成適合運行在通用硬件(commodity hardware)上的分布式文件系統。它和現有的分布式文件系統有很多共同點。但同時,它和其他的分布式文件系統的區別也是很明顯的。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。HDFS放寬了一部分POSIX約束,來實現流式讀取文件系統數據的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎架構而開發的。HDFS是Apache Hadoop Core項目的一部分。

    首先來看看Hadoop架構,HDFS為Hadoop其他組件提供存儲支持。

    直觀對比Linux文件系統和HDFS文件系統(執行ls命令)。

    Linux:

    #ls -l-rw-r--r-- 1 root root 20 Jul 29 14:31 ms-server-download-zzzc_88888.idx-rw-r--r-- 1 root root 8 Jul 29 14:31 ms-server-download-zzzc_88888.dat

    HDFS:

    #hadoop fs -ls /tmp/-rw-r--r-- 2 xitong supergroup 181335139 2019-07-17 23:00 /tmp/java.tar.gz-rw-r--r-- 2 xitong supergroup 181335139 2019-07-17 23:00 /tmp/jdk.tar.gz

    可以看出HDFS和Linux文件系統很類似,都是有權限、文件所屬用戶、用戶所在的組、文件名稱等,但是也有不同:HDFS中的第2列表示副本數

    HDFS的架構是怎么樣的?

    HDFS架構如下:

  • Client:客戶端。
  • NameNode:master,它是一個主管、管理者,存儲元數據,存儲元數據格式會在后面介紹。
  • DataNode:slave,NameNode 下達命令,DataNode 執行操作并存儲實際數據。
  • SecondaryNameNode:和NameNode不是主備關系。當NameNode掛掉的時候,它并不能馬上替換NameNode提供服務。主要作用會在后面介紹。
  • HDFS怎樣進行讀寫

    寫文件

  • 客戶端調用create方法,創建一個新的文件;NameNode會做各種校驗,比如文件是否已經存在,客戶端是否有權限等。
  • 如果校驗通過,客戶端開始寫數據到DN(DataNode),文件會按照block大小進行切塊,默認128M(可配置),DataNode構成pipeline管道,client端向輸出流對象中寫數據,傳輸的時候是以比block更小的packet為單位進行傳輸,packet又可拆分為多個chunk,每個chunk都攜帶校驗信息。
  • 每個DataNode寫完一個塊后,才會返回確認信息,并不是每個packet寫成功就返回一次確認。
  • 寫完數據,關閉文件
  • 讀文件

  • 客戶端調用open方法,打開一個文件
  • 獲取block的location,即block所在的DN,NN(NameNode)會根據拓撲結構返回距離客戶端最近的DN。
  • 客戶端直接訪問DN讀取block數據并計算校驗和,整個數據流不經過NN。
  • 讀取完一個block會讀取下一個block。
  • 所有block讀取完成,關閉文件
  • 副本放置

    以經典的3副本為例(黃色方框表示客戶端,綠色表示要寫的block),Hadoop早期版本采用左邊的放置策略,后期版本采用右邊的放置策略放置副本。

    圖左:

    • 副本1:同機架的不同節點。
    • 副本2:同機架的另一個節點。
    • 副本3:不同機架的另一個節點。
    • 如果還有其他副本:隨機。

    圖右:

    • 副本1:同Client的節點。
    • 副本2:不同機架的節點。
    • 副本3:同第2副本相同機架的不同節點。
    • 如果還有其他副本:隨機。

    兩種策略的故障域都為機架,新版相對于舊版本,當本客戶端再次讀取新寫的數據時,直接從本地讀取,這樣延遲最小,讀取速度最快。

    HDFS各個組件的作用?

    先大致看下啟動流程:

  • 啟動NameNode,讀取FsImage元數據鏡像文件,加載到內存中;讀取EditLog日志文件,加載到內存中,使當前內存中元數據信息與上次關閉系統時保持一致
  • 啟動DataNode,向NameNode注冊,并向NameNode發送BlockReport。
  • 退出安全模式后,Client可以對HDFS進行目錄創建、文件上傳等操作,改動的目錄結構會記錄在EditLog中,NameNode的內存中的目錄結構也會改變。
  • NameNode

  • 管理 HDFS 的命名空間。
  • 管理數據塊(Block)映射信息。
  • 配置副本策略。
  • 處理客戶端讀寫請求。
  • Fsimage是一個二進制文件,格式如下:

    FsImage文件第1行為image head,里面包含image的版本、文件和目錄的個數等;第2行為一個目錄格式(如果是目錄,就是這種格式),包含了目錄的路徑、副本數、權限等,目錄的blocksize都為0;第3行為一個文件格式(如果是文件,則在FsImage存儲的格式),文件和目錄格式包含的字段差不多,多了block信息;通過加載此文件和EditLog日志文件來構建整個文件系統的目錄結構。

    通過觀察FsImage文件,里面并沒有block和DN的對應關系,它是如何查到塊所對應的DN的呢?

    block和DN的對應關系并沒有實際持久化,而是通過DN向NN(NameNode)匯報,此過程為BlockReport。通過blockReport構建BlocksMap的結構如下:

    在blockInfo中保存了block所在的DN信息

    SecondaryNameNode

    和NameNode并非主備關系,而是輔助NN進行合并FsImage和EditLog并起到備份作用。

    HDFS文件操作命令有哪些?

    和Linux操作文件類似,只列出常見幾個,和Linux命令的功能也是類似的,如:cp即拷貝,rm即刪除等等

    #hadoop fs [cat|chgrp|chmod|chown|count|cp|df|get|ls|put|mv|rm|mkdir|tail]

    在HDFS中,提供了fsck命令,用于檢查HDFS上文件和目錄的健康狀態、獲取文件的block塊信息和位置信息等。

    #hdfs fsck [move|delete|files|blocks|locations|racks|blockId]

    HDFS的優缺點是什么?

    最后根據以上內容總結HDFS優缺點如下:

    優點:

  • 支持海量數據的存儲。
  • 檢測和快速應對硬件故障。
  • 流式數據訪問。
  • 簡化的一致性模型。
  • 高容錯性。
  • 商用硬件。
  • 缺點:

  • 不能做到低延遲數據訪問。
  • 不適合大量的小文件存儲。
  • 不支持修改文件(HDFS2.x開始支持給文件追加內容)。
  • 不支持用戶的并行寫。
  • hadoop2.x新特性 引入了NameNode Federation,解決了橫向內存擴展;引入了Namenode HA,解決了namenode單點故障。

    相關文章

    http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

    https://www.jianshu.com/p/85b71d550c43

    https://www.jianshu.com/p/f1e785fffd4d

    https://blog.csdn.net/weixin_38750084/article/details/82963235

    https://blog.csdn.net/macyang/article/details/7958862

    關于360技術360技術是360技術團隊打造的技術分享公眾號,每天推送技術干貨內容更多技術信息歡迎關注“360技術”微信公眾號

    總結

    以上是生活随笔為你收集整理的hdfs通过接口退出安全模式_Hadoop之HDFS简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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