hdfs通过接口退出安全模式_Hadoop之HDFS简介
奇技指南HDFS作為運(yùn)行在通用硬件上的分布式文件系統(tǒng),和現(xiàn)有的分布式文件系統(tǒng)既有很多的共同點(diǎn),也存在很多的差異。本文從HDFS是什么開(kāi)始介紹,包括了HDFS架構(gòu)、HDFS的讀寫、各個(gè)組件的作用、具體操作以及優(yōu)缺點(diǎn)。給出了HDFS在分布式存儲(chǔ)上的具體方案,可以使讀者快速、清晰的理解HDFS系統(tǒng)。。本文轉(zhuǎn)載自360云計(jì)算公眾號(hào)。作者:于桐
主要內(nèi)容
引言
有這樣一個(gè)需求:
由于公司某業(yè)務(wù)mysql服務(wù)器過(guò)保,為防止數(shù)據(jù)丟失,需要備份mysql數(shù)據(jù)庫(kù),這些庫(kù)目前已經(jīng)只讀,每個(gè)庫(kù)約1.5T,大概有130個(gè)庫(kù),共需要200T左右的空間,并且希望數(shù)據(jù)不易丟失,恢復(fù)數(shù)據(jù)速度快。
部分解決方案:
1)單機(jī)存儲(chǔ)
有如下問(wèn)題:
2)分布式存儲(chǔ)
可選用分布式存儲(chǔ),如HDFS、CEPH、S3等等。
HDFS是什么?是干什么用的?
HDFS(Hadoop Distributed File System)被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)。但同時(shí),它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問(wèn),非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,來(lái)實(shí)現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。HDFS在最開(kāi)始是作為Apache Nutch搜索引擎項(xiàng)目的基礎(chǔ)架構(gòu)而開(kāi)發(fā)的。HDFS是Apache Hadoop Core項(xiàng)目的一部分。
首先來(lái)看看Hadoop架構(gòu),HDFS為Hadoop其他組件提供存儲(chǔ)支持。
直觀對(duì)比Linux文件系統(tǒng)和HDFS文件系統(tǒng)(執(zhí)行l(wèi)s命令)。
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.datHDFS:
#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文件系統(tǒng)很類似,都是有權(quán)限、文件所屬用戶、用戶所在的組、文件名稱等,但是也有不同:HDFS中的第2列表示副本數(shù)
HDFS的架構(gòu)是怎么樣的?
HDFS架構(gòu)如下:
HDFS怎樣進(jìn)行讀寫
寫文件
讀文件
副本放置
以經(jīng)典的3副本為例(黃色方框表示客戶端,綠色表示要寫的block),Hadoop早期版本采用左邊的放置策略,后期版本采用右邊的放置策略放置副本。
圖左:
- 副本1:同機(jī)架的不同節(jié)點(diǎn)。
- 副本2:同機(jī)架的另一個(gè)節(jié)點(diǎn)。
- 副本3:不同機(jī)架的另一個(gè)節(jié)點(diǎn)。
- 如果還有其他副本:隨機(jī)。
圖右:
- 副本1:同Client的節(jié)點(diǎn)。
- 副本2:不同機(jī)架的節(jié)點(diǎn)。
- 副本3:同第2副本相同機(jī)架的不同節(jié)點(diǎn)。
- 如果還有其他副本:隨機(jī)。
兩種策略的故障域都為機(jī)架,新版相對(duì)于舊版本,當(dāng)本客戶端再次讀取新寫的數(shù)據(jù)時(shí),直接從本地讀取,這樣延遲最小,讀取速度最快。
HDFS各個(gè)組件的作用?
先大致看下啟動(dòng)流程:
NameNode
Fsimage是一個(gè)二進(jìn)制文件,格式如下:
FsImage文件第1行為image head,里面包含image的版本、文件和目錄的個(gè)數(shù)等;第2行為一個(gè)目錄格式(如果是目錄,就是這種格式),包含了目錄的路徑、副本數(shù)、權(quán)限等,目錄的blocksize都為0;第3行為一個(gè)文件格式(如果是文件,則在FsImage存儲(chǔ)的格式),文件和目錄格式包含的字段差不多,多了block信息;通過(guò)加載此文件和EditLog日志文件來(lái)構(gòu)建整個(gè)文件系統(tǒng)的目錄結(jié)構(gòu)。
通過(guò)觀察FsImage文件,里面并沒(méi)有block和DN的對(duì)應(yīng)關(guān)系,它是如何查到塊所對(duì)應(yīng)的DN的呢?
block和DN的對(duì)應(yīng)關(guān)系并沒(méi)有實(shí)際持久化,而是通過(guò)DN向NN(NameNode)匯報(bào),此過(guò)程為BlockReport。通過(guò)blockReport構(gòu)建BlocksMap的結(jié)構(gòu)如下:
在blockInfo中保存了block所在的DN信息
SecondaryNameNode
和NameNode并非主備關(guān)系,而是輔助NN進(jìn)行合并FsImage和EditLog并起到備份作用。
HDFS文件操作命令有哪些?
和Linux操作文件類似,只列出常見(jiàn)幾個(gè),和Linux命令的功能也是類似的,如:cp即拷貝,rm即刪除等等
#hadoop fs [cat|chgrp|chmod|chown|count|cp|df|get|ls|put|mv|rm|mkdir|tail]
在HDFS中,提供了fsck命令,用于檢查HDFS上文件和目錄的健康狀態(tài)、獲取文件的block塊信息和位置信息等。
#hdfs fsck [move|delete|files|blocks|locations|racks|blockId]
HDFS的優(yōu)缺點(diǎn)是什么?
最后根據(jù)以上內(nèi)容總結(jié)HDFS優(yōu)缺點(diǎn)如下:
優(yōu)點(diǎn):
缺點(diǎn):
hadoop2.x新特性 引入了NameNode Federation,解決了橫向內(nèi)存擴(kuò)展;引入了Namenode HA,解決了namenode單點(diǎn)故障。
相關(guān)文章
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
關(guān)于360技術(shù)360技術(shù)是360技術(shù)團(tuán)隊(duì)打造的技術(shù)分享公眾號(hào),每天推送技術(shù)干貨內(nèi)容更多技術(shù)信息歡迎關(guān)注“360技術(shù)”微信公眾號(hào)
總結(jié)
以上是生活随笔為你收集整理的hdfs通过接口退出安全模式_Hadoop之HDFS简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.1.1.1校园网_还担心断网?快试试
- 下一篇: leetcode 贪心_LeetCode