HDFS高級特性

      網(wǎng)友投稿 971 2022-05-29

      安全模式

      安全模式是HDFS所處的一種特殊狀態(tài),在這種狀態(tài)下,文件系統(tǒng)只接受讀數(shù)據(jù)請求,而不接受刪除、修改等變更請求。在NameNode主節(jié)點啟動時,HDFS首先進(jìn)入安全模式,DataNode在啟動的時候會向namenode匯報可用的block等狀態(tài),讓NameNode得到塊的位置信息,并對每一個文件對應(yīng)的數(shù)據(jù)塊副本進(jìn)行統(tǒng)計,當(dāng)最小副本條件滿足時HDFS自動離開安全模式。如果HDFS出于安全模式下,則文件block不能進(jìn)行任何的副本復(fù)制操作,如果HDFS出于安全模式下,則文件block不能進(jìn)行任何的副本復(fù)制操作,因此達(dá)到最小的副本數(shù)量要求是基于datanode啟動時的狀態(tài)來判定的,啟動時不會再做任何復(fù)制(從而達(dá)到最小副本數(shù)量要求)

      假設(shè)我們設(shè)置的副本數(shù)即(參數(shù)dfs.replication是5),那么在datanode上應(yīng)該有5個副本存在,假設(shè)只存在3個副本那么比例就是3/5=0.6,默認(rèn)的最小的副本率是0.999.因此系統(tǒng)會自動復(fù)制副本到其他的dataNode,使得副本率不小于0.99.

      安全模式的相關(guān)命令:

      查看當(dāng)前狀態(tài)

      hdfs dfsadmin ? -safemode get

      進(jìn)入安全模式

      hdfs dfsadmin ? -safemode enter

      強(qiáng)制離開安全模式

      hdfs dfsadmin -safemode ?leave

      一直等待直到安全模式結(jié)束

      hdfs dfsadmin -safemode wait

      Web查看啟動過程 端口50070

      回收站

      HDFS會為每一個用戶創(chuàng)建一個回收站目錄:/user/用戶名/.Trash/,每一個被用戶通過Shell刪除的文件/目錄,在系統(tǒng)回收站中都一個周期,也就是當(dāng)系統(tǒng)回收站中的文件/目錄在一段時間之后沒有被用戶恢復(fù)的話,HDFS就會自動的把這個文件/目錄徹底刪除,之后,用戶就永遠(yuǎn)也找不回這個文件/目錄了。在HDFS內(nèi)部的具體實現(xiàn)就是在NameNode中開啟了一個后臺線程Emptier,這個線程專門管理和監(jiān)控系統(tǒng)回收站下面的所有文件/目錄,對于已經(jīng)超過生命周期的文件/目錄,這個線程就會自動的刪除它們,不過這個管理的粒度很大。另外,用戶也可以手動清空回收站,清空回收站的操作和刪除普通的文件目錄是一樣的,只不過HDFS會自動檢測這個文件目錄是不是回收站,如果是,HDFS當(dāng)然不會再把它放入用戶的回收站中了。

      設(shè)置trashtrash選項

      hadoop中的trash選項默認(rèn)關(guān)閉,如果生效,需要更改conf中的core-site.xml

      fs.trash.interval

      1440

      fs.trash.checkpoint.interval

      1440

      執(zhí)行 Hadoop fs -rm -f /文件路徑,將文件刪除時,文件并不是直接消失在系統(tǒng)中,而是被從當(dāng)前目錄move到了所屬用戶的回收站中。保留時間(1440分鐘=24小時),24小時內(nèi),用戶可以去回收站找到這個文件,并且恢復(fù)它。24小時過后,系統(tǒng)會自動刪除這個文件,于是這個文件徹底被刪除了。

      fs.trash.checkpoint.interval則是指的是檢查垃圾回收的檢查間隔,應(yīng)該是小于或者等于fs.trash.checkpoint.。想要恢復(fù)數(shù)據(jù)只需要把數(shù)據(jù)移動到要恢復(fù)的數(shù)據(jù)即可。

      快照

      Hadoop 2.x HDFS新特性

      基于某時間點的數(shù)據(jù)的備份復(fù)制.利用快照,可以針對基本的目錄或者整個文件系統(tǒng),讓HDFS在數(shù)據(jù)損壞時恢復(fù)到過去一個正確的時間點,快照比較常見的應(yīng)用場景書數(shù)據(jù)備份,以防止一些用戶錯誤或者災(zāi)難.

      快照功能默認(rèn)禁用,開啟或者禁用快照功能需要針對目錄進(jìn)行操作命令如下

      hdfs dfsadmin -allowSnapshot ? #開啟快照

      hdfs dfsadmin -disallowSnapshot ? #取消快照

      hdfs dfs -createSnapshot [] # 創(chuàng)建快照

      hdfs dfs -deleteSnapshot [] # 刪除快照

      hdfs dfs -renameSnapshot #重命名快照

      hdfs snapshotDiff ?#比較快照不同

      hdfs lsSnapshottableDir ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?##查看快錄

      開啟快照

      [hadoop@datanode1 ~]$ hdfs dfsadmin -allowSnapshot /input

      Allowing snaphot on /input succeeded

      創(chuàng)建快照

      hdfs dfs -createSnapshot /input input_2018-12-19

      HDFS的高級特性

      Created snapshot /input/.snapshot/input_2018-12-19

      上傳文件

      [hadoop@datanode1 ~]$ hadoop fs -put bigtable /input

      創(chuàng)建快照

      [hadoop@datanode1 ~]$ hdfs dfs -createSnapshot /input input_2018-12-19_2

      Created snapshot /input/.snapshot/input_2018-12-19_2

      對比快照

      [hadoop@datanode1 ~]$ hdfs snapshotDiff /input input_2018-12-19 input_2018-12-19_2

      Difference between snapshot input_2018-12-19 and snapshot input_2018-12-19_2 under directory /input:

      M ? ? ? .

      + ? ? ? ./bigtable

      Web查看

      恢復(fù)數(shù)據(jù)

      恢復(fù)數(shù)據(jù)的方法就是拷貝

      [hadoop@datanode1 ~]$ hdfs dfs -cp /input/.snapshot/input_2018-12-19 /input

      [hadoop@datanode1 ~]$ hdfs dfs -ls /input/input_2018-12-19

      Found 2 items

      -rw-r--r-- ? 3 hadoop supergroup ? ? ? ? 51 2018-12-19 10:17 /input/input_2018-12-19/test

      -rw-r--r-- ? 3 hadoop supergroup ? ? ? ? 12 2018-12-19 10:17 /input/input_2018-12-19/write.txt

      配額

      setQuota 針對HDFS中的某個目錄設(shè)置文件和目錄數(shù)量之和的最大值

      [hadoop@datanode1 ~]$ hdfs dfsadmin -setQuota 5 /input ?# 該目錄下目錄數(shù)之和不超過5

      #超過5個情況下put文件

      #put: The NameSpace quota (directories and files) of directory /input is exceeded: quota=5 file count=8

      setSoaceQuota

      [hadoop@datanode1 ~]$ hdfs dfsadmin -setSpaceQuota 134217728 /input #設(shè)置input的存儲空間為128M

      清除配額命令

      [hadoop@datanode1 ~]$ hdfs dfsadmin -clrQuota /input

      [hadoop@datanode1 ~]$ hdfs dfsadmin -clrSpaceQuota /input

      聯(lián)邦

      Federation即為“聯(lián)邦”,該特性允許一個HDFS集群中存在多個NameNode同時對外提供服務(wù),這些NameNode分管一部分目錄(水平切分),彼此之間相互隔離,但共享底層的DataNode存儲資源。

      【單機(jī)namenode的瓶頸大約是在4000臺集群,而后則需要使用聯(lián)邦機(jī)制】

      什么是Federation機(jī)制

      Federation是指HDFS集群可使用多個獨(dú)立的NameSpace(NameNode節(jié)點管理)來滿足HDFS命名空間的水平擴(kuò)展 ,這些NameNode分別管理一部分?jǐn)?shù)據(jù),且共享所有DataNode的存儲資源。

      NameSpace之間在邏輯上是完全相互獨(dú)立的(即任意兩個NameSpace可以有完全相同的文件名)。在物理上可以完全獨(dú)立(每個NameNode節(jié)點管理不同的DataNode)也可以有聯(lián)系(共享存儲節(jié)點DataNode)。一個NameNode節(jié)點只能管理一個Namespace

      Federation機(jī)制解決單NameNode存在的以下幾個問題

      (1)HDFS集群擴(kuò)展性。每個NameNode分管一部分namespace,相當(dāng)于namenode是一個分布式的。

      (2)性能更高效。多個NameNode同時對外提供服務(wù),提供更高的讀寫吞吐率。

      (3)良好的隔離性。用戶可根據(jù)需要將不同業(yè)務(wù)數(shù)據(jù)交由不同NameNode管理,這樣不同業(yè)務(wù)之間影響很小。

      (4)Federation良好的向后兼容性,已有的單Namenode的部署配置不需要任何改變就可以繼續(xù)工作。

      Federation是簡單魯棒的設(shè)計

      魯棒性(健壯和強(qiáng)壯):在輸入錯誤、磁盤故障、網(wǎng)絡(luò)過載或有意攻擊情況下,能否不死機(jī)、不崩潰

      由于聯(lián)盟中各個Namenode之間是相互獨(dú)立的:Federation整個核心設(shè)計大部分改變是在Datanode、Config和Tools,而Namenode本身的改動非常少,這樣Namenode原先的魯棒性不會受到影響。比分布式的Namenode簡單,雖然擴(kuò)展性比真正的分布式的Namenode要小些,但是可以迅速滿足需求。

      另外一個原因是Federation良好的向后兼容性,可以無縫的支持目前單Namenode架構(gòu)中的配置。已有的單Namenode的部署配置不需要任何改變就可以繼續(xù)工作。

      Federation不足之處

      HDFS Federation并沒有完全解決單點故障問題。雖然namenode/namespace存在多個,但是從單namenode/namespace看,仍然存在單點故障。因此 Federation中每個namenode配置成HA高可用集群,以便主namenode掛掉一下,用于快速恢復(fù)服務(wù)。

      HA

      通常一個集群只有一個NameNode,所有的元數(shù)據(jù)由唯一的NameNode負(fù)責(zé)管理,如果機(jī)器或者進(jìn)程變得不可用,整個集群都會無法工作。知道NameNode恢復(fù)工作為止。影響集群的可用性,HDFS高可用通過提供同一集群中運(yùn)行兩個NameNode的方法來解決問題,一臺保持活躍(Active)狀態(tài)對外提供服務(wù),一臺處于備用(Standby)狀態(tài),兩個節(jié)點保持?jǐn)?shù)據(jù)同步。為了實時同步兩個NameNode上的元數(shù)據(jù)需要一個共享存儲系統(tǒng),可以是NFS QJM 或者Zookeeper,Active的NameNode將共享數(shù)據(jù)寫入到共享系統(tǒng)中去,而Standby監(jiān)聽該系統(tǒng)與ActiveNameNode基本保持一致因此在一個NameNode不能對外提供服務(wù)的情況下,可以快速故障轉(zhuǎn)移到另外一個NameNode。

      Hadoop 大數(shù)據(jù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:C語言_結(jié)構(gòu)體總結(jié)
      下一篇:Java語言的概述
      相關(guān)文章
      亚洲福利一区二区| 老司机亚洲精品影院| 久久精品国产亚洲αv忘忧草| 久久精品亚洲一区二区三区浴池| 国产成A人亚洲精V品无码性色| 国产偷国产偷亚洲清高动态图| 亚洲国产成人精品女人久久久| 国产产在线精品亚洲AAVV| 亚洲AV无码AV日韩AV网站| 亚洲.国产.欧美一区二区三区| 亚洲乱码国产乱码精华| 波多野结衣亚洲一级| 亚洲乱码日产精品BD在线观看| 亚洲人成综合在线播放| 亚洲日产2021三区在线| 久久精品国产亚洲AV忘忧草18 | 亚洲美女视频一区二区三区| 亚洲国产精品婷婷久久| 亚洲视频中文字幕| 亚洲综合久久成人69| 亚洲性无码av在线| 亚洲熟妇自偷自拍另欧美| 亚洲最大的成人网| 亚洲AV成人精品一区二区三区| 老子影院午夜伦不卡亚洲| 亚洲Av无码国产情品久久| 亚洲日韩在线第一页| 亚洲女初尝黑人巨高清| 亚洲成色在线综合网站| 久久久久亚洲精品天堂| 亚洲日产2021三区| 亚洲精品无码成人片久久不卡 | 亚洲av再在线观看| 亚洲午夜久久久影院伊人 | 日本亚洲欧美色视频在线播放 | www国产亚洲精品久久久日本| 红杏亚洲影院一区二区三区| 国产亚洲高清不卡在线观看| 久久精品国产亚洲AV大全| ASS亚洲熟妇毛茸茸PICS| 亚洲av成人无码网站…|