HDFS Trash垃圾桶
- 功能概述
- HDFS Trash機(jī)制昧绣,叫做回收站或者垃圾桶。Trash就像Windows操作系統(tǒng)中的回收站一樣。它的目的是防止你無(wú)意中刪除某些東西片习。默認(rèn)情況下是不開啟的匪凉。
- 啟用ITrash功能后屉更,從HDFS中刪除某些內(nèi)容時(shí),文件或目錄不會(huì)立即被清除洒缀,它們將被移動(dòng)到回收站Current目錄中(/user/$ (username} /. Trash/current)瑰谜。
- .Trash中的文件在用戶可配置的時(shí)間延遲后被永久刪除。
- 也可以簡(jiǎn)單地將回收站里的文件移動(dòng)到.Trash目錄之外的位置來(lái)恢復(fù)回收站中的文件和目錄树绩。
- Trash Checkpoint
- 檢查點(diǎn)僅僅是用戶回收站下的一個(gè)目錄萨脑,用于存儲(chǔ)在創(chuàng)建檢查點(diǎn)之前刪除的所有文件或目錄。
- 回收站目錄在/user/$ {username]} /.Trash/{timestamp_of_checkpoint_creation)
-
最近刪除的文件被移動(dòng)到回收站Current目錄饺饭,并且在可配置的時(shí)間間隔內(nèi)渤早,HDFS會(huì)為在Current回收站目錄下的文件創(chuàng)建檢查點(diǎn)/user/${username} / .Trash/<日期>,并在過(guò)期時(shí)刪除舊的檢查點(diǎn)瘫俊。
image.png
- HDFS Trash功能開啟
- step1 :關(guān)閉HDFS集群
在node1節(jié)點(diǎn)上鹊杖,執(zhí)行一鍵關(guān)閉HDFS集群命令:stop-dfs.sh悴灵。 -
step2∶修改core-site.xml文件
在nodel節(jié)點(diǎn)上修改core-site.xml文件,添加下面兩個(gè)屬性︰
Inkedtrash.jpg - fs.trash. interval:回收站中的文件多少分鐘后會(huì)被系統(tǒng)永久刪除骂蓖。如果為零积瞒,Trash功能將被禁用。
- fs.trash. checkpoint.interval :前后兩次檢查點(diǎn)的創(chuàng)建時(shí)間間隔(單位也是分鐘)登下,新的檢查點(diǎn)被創(chuàng)建后茫孔,隨之舊的檢查點(diǎn)就會(huì)被系統(tǒng)永久刪除。如果為零被芳,則將該值設(shè)置為fs.trash.interval的值缰贝。
刪除文件跳過(guò)Trash、直接刪除
有的時(shí)候畔濒,我們希望直接把文件刪除剩晴,不需要再經(jīng)過(guò)Trash回收站了∏肿矗可以在執(zhí)行刪除操作的時(shí)候添加一個(gè)參數(shù):-skipTrash.
- 清空Trash
- 除了fs.trash.interval參數(shù)控制到期自動(dòng)刪除之外李破,用戶還可以通過(guò)命令手動(dòng)清空回收站,釋放HDFS磁盤存儲(chǔ)空間壹将。
- 首先想到的是刪除整個(gè)回收站目錄嗤攻,將會(huì)清空回收站,這是一個(gè)選擇。
- 此外诽俯。HDFS提供了一個(gè)命令行工具來(lái)完成這個(gè)工作: hadoop fs -expunge妇菱。該命令立即從文件系統(tǒng)中刪除過(guò)期的檢查點(diǎn)。
心
HDFS Snapshot快照
快照介紹
- 可以將快照理解為拍照片時(shí)的那一瞬間的投影暴区。
- 快照(Snapshot )是
﹔備份( Backup )則是數(shù)據(jù)存儲(chǔ)的某一個(gè)時(shí)刻的副本闯团。
- HDPS Snapshot快照是整個(gè)文件系統(tǒng)或某個(gè)目錄在某個(gè)時(shí)刻的鏡像。該鏡像并不會(huì)隨著源目錄的改變而進(jìn)行動(dòng)態(tài)的更新仙粱。
快照作用
- 數(shù)據(jù)恢復(fù)
對(duì)重要目錄進(jìn)行創(chuàng)建snapshot的操作房交,當(dāng)用戶誤操作時(shí),可以通過(guò)snapshot來(lái)進(jìn)行相關(guān)的恢復(fù)操作伐割。 - 數(shù)據(jù)備份
使用snapshot來(lái)進(jìn)行整個(gè)集群候味,或者某些目錄、文件的備份隔心。管理員以某個(gè)時(shí)刻的snapshot作為備份的起始結(jié)點(diǎn)白群,然后通過(guò)比較不同備份之間差異性,來(lái)進(jìn)行增量備份硬霍。 - 數(shù)據(jù)測(cè)試
在某些重要數(shù)據(jù)上進(jìn)行測(cè)試或者實(shí)驗(yàn)帜慢,可能會(huì)直接將原始的數(shù)據(jù)破壞掉。可以臨時(shí)的為用戶針對(duì)要操作的數(shù)據(jù)來(lái)創(chuàng)建一個(gè)snapshot粱玲,然后讓用戶在對(duì)應(yīng)的snapshot上進(jìn)行相關(guān)的實(shí)驗(yàn)和測(cè)試躬柬,從而避免對(duì)原始數(shù)據(jù)的破壞。
HDFS快照功能的實(shí)現(xiàn)
對(duì)于大多不變的數(shù)據(jù),你所看到的數(shù)據(jù)其實(shí)是當(dāng)前物理路徑所指的內(nèi)容胯甩,而發(fā)生變更的inode數(shù)據(jù)才會(huì)被快照額外拷貝,也就是所說(shuō)的差異拷貝堪嫂。
HDFS快照不會(huì)復(fù)制datanode中的塊偎箫,只記錄了塊列表和文件大小。
HDFS快照不會(huì)對(duì)常規(guī)HDFS操作產(chǎn)生不利影響皆串,修改記錄按逆時(shí)針順序進(jìn)行淹办,因此可以直接訪問(wèn)當(dāng)前數(shù)據(jù)。通過(guò)從當(dāng)前數(shù)據(jù)中減去修改來(lái)計(jì)算快照數(shù)據(jù)恶复。
#啟用快照功能:
hdfs dfsadmin -allowSnapshot/allenwoon
#禁用快照功能:
hdfs dfsadmin -disallowSnapshot/allenwoon
快照間差異比較
+創(chuàng)建了文件目錄怜森。
-文件目錄已被刪除。
M文件目錄已被修改谤牡。
R文件/目錄已被重命名副硅。
刪除開啟快照功能的目錄
- hadoop fs -rm -r /allenwoon
- 擁有快照的目錄不允許被刪除,某種程度上也保護(hù)了文件安全翅萤。
HDFS 權(quán)限管理
-rwxr-xr-x(開頭的-代表文件恐疲,也可以是d代表目錄) 權(quán)限755
- web頁(yè)面修改UGo權(quán)限
粘滯[nian zhi]位( Sticky bit)用在目錄上設(shè)置,如此以來(lái)套么,只有目錄內(nèi)文件的所有者或者root才可以刪除或移動(dòng)該文件培己。
如果不為目錄設(shè)置粘滯位,任何具有該目錄寫和執(zhí)行權(quán)限的用戶都可以刪除和移動(dòng)其中的文件胚泌。 - Simple認(rèn)證
- Kerberos認(rèn)證
HDFS Proxy user代理用戶
HDFS 透明加密
介紹
- HDFS透明加密(Transparent Encryption )支持端到端的透明加密省咨,啟用以后,對(duì)于一些需要加密的HDFS目錄里的文件可以實(shí)現(xiàn)透明的加密和解密玷室,而不需要修改用戶的業(yè)務(wù)代碼零蓉。端到端是指加密和解密只能通過(guò)客戶端。
- 對(duì)于加密區(qū)域里的文件穷缤,HDFS保存的即是加密后的文件壁公,文件加密的秘鑰也是加密的
讓非法用戶即使從操作系統(tǒng)層面拷走文件,也是密文绅项,沒(méi)法查看紊册。 - block在操作系統(tǒng)是以加密的形式存儲(chǔ)的,從而減輕了操作系統(tǒng)和文件系統(tǒng)級(jí)別的安全威脅
- HDFS使用AES-CTR加密算法。AES-CTR支持128位加密密鑰(默認(rèn))
密鑰
- 當(dāng)加密區(qū)域被創(chuàng)建時(shí)囊陡,都會(huì)有一個(gè)
芳绩,encryption zone key )與之對(duì)應(yīng),EZ密鑰存儲(chǔ)在HDFS外部的密鑰庫(kù)中撞反。
- 加密區(qū)域里的每個(gè)文件都有其自己加密密鑰妥色,叫做
,data encryption key )遏片。DEK會(huì)使用其各自的加密區(qū)域的EZ* * 密鑰進(jìn)行加密嘹害,以形成
密鑰庫(kù)(keystore )
存儲(chǔ)密鑰(key)的叫做密鑰庫(kù)(keystore ) ,將HDFS與外部企業(yè)級(jí)密鑰庫(kù)(keystore )集成是部署透明加密的第一步吮便。
這是因?yàn)槊荑€(key )管理員和HDFS管理員之間的職責(zé)分離是此功能的非常重要的方面笔呀。但是,大多數(shù)密鑰庫(kù)都不是為Hadoop工作負(fù)載所見(jiàn)的加密/解密請(qǐng)求速率而設(shè)計(jì)的髓需。
KMS(密鑰管理服務(wù))
Hadoop密鑰管理服務(wù)(Key Management Server许师,簡(jiǎn)寫KMS),用作HDFS客戶端與密鑰庫(kù)之間的代理僚匆。
KMS主要有以下幾個(gè)職責(zé)∶
1.訪問(wèn)加密區(qū)域秘鑰( EZ key )
2.生成EDEK微渠,EDEK存儲(chǔ)在NameNode上
3.為HDFS客戶端解密EDEK
KMS配置
- step1 :關(guān)閉HDFS集群
在node1上執(zhí)行stop-dfs.sh逞盆。 - Step2:創(chuàng)建keystore
·密鑰庫(kù)的名字叫做itcast,訪問(wèn)密鑰庫(kù)的密碼是:123456松申。
keytool -genkey -alias 'itcast_keystore'
- step3:配置kms-site.xml
hadoop. kms. kev.proxider.uri設(shè)置密鑰庫(kù)的提供者這里設(shè)置jceks纳击,表示就是java密鑰庫(kù)。
<configuration>
<property>
<name>hadoop.kms.key.provider.uri</name>
<value>jceks://file@/${user.home]/kms.jks</value>
</property>
<property>
<name>hadoop.security.keystore.java-keystore-provider.password-file</name>
<value>kms.keystore.password</value>
</property>
<property>
<name>dfs.encryption.key.provider.uri</name>
<value>kms://http@node1:16000/kms</value>
</property>
<property>
<name>hadoop.kms.authentication.type</name>
<value>simple</value>
</property>
</configuration>