首頁(yè)技術(shù)文章正文

防誤刪!為Hive添加回收站功能防止意外刪除文件

更新時(shí)間:2023-04-26 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

Hive中的回收站是通過HDFS的Trash功能實(shí)現(xiàn),Trash功能可以將HDFS中刪除的文件放入回收站目錄(默認(rèn)回收站目錄/user/root/.Trash/Current,其中回收站目錄中的root會(huì)根據(jù)當(dāng)前操作HDFS的用戶名而變化),防止用戶意外刪除文件,出現(xiàn)無法找回的情況。Hive內(nèi)部表的數(shù)據(jù)存放在HDFS中,并且刪除內(nèi)部表時(shí)數(shù)據(jù)也會(huì)一同被刪除,所以為了防止用戶意外刪除Hive內(nèi)部表造成數(shù)據(jù)丟失的情況,可以在刪除內(nèi)部表的語(yǔ)句中指定PURGE,將刪除的內(nèi)部表數(shù)據(jù)放入回收站目錄,后續(xù)復(fù)制回收站目錄中刪除的內(nèi)部表數(shù)據(jù)即可。

HDFS默認(rèn)情況下并沒有開啟Trash功能,需要在Hadoop的配置文件core-site.xml的<configuration/>標(biāo)簽中添加如下配置內(nèi)容。

<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>
<property>
    <name>fs.trash,checkpoint.interval</name>
    <valpe>60</value>
</property>

上述配置內(nèi)容中,參數(shù)fs.trash.interval表示回收站目錄中文件保存的時(shí)間,該參數(shù)的默認(rèn)值為0(分鐘),也就是不保存,這里指定參數(shù)值為1440,也就是被刪除的文件會(huì)在回收站目錄保存一天;參數(shù)fs.trash.checkpoint.interval表示NameNode檢查回收站目錄間隔的時(shí)長(zhǎng),這里指定參數(shù)值為60,也就是NameNode每間隔一小時(shí)檢查一次回收站目錄,永久刪除回收站目錄中存放時(shí)長(zhǎng)超過一天的文件。

在3臺(tái)虛擬機(jī)Node_01、Node_02和Node_03的Hadoop配置文件core-site.xml中分別添加上述內(nèi)容,添加完成后需要重新啟動(dòng)Hadoop集群使配置內(nèi)容生效。


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!