更新時間:2023-04-26 來源:黑馬程序員 瀏覽量:
Hive中的回收站是通過HDFS的Trash功能實現(xiàn),Trash功能可以將HDFS中刪除的文件放入回收站目錄(默認回收站目錄/user/root/.Trash/Current,其中回收站目錄中的root會根據(jù)當(dāng)前操作HDFS的用戶名而變化),防止用戶意外刪除文件,出現(xiàn)無法找回的情況。Hive內(nèi)部表的數(shù)據(jù)存放在HDFS中,并且刪除內(nèi)部表時數(shù)據(jù)也會一同被刪除,所以為了防止用戶意外刪除Hive內(nèi)部表造成數(shù)據(jù)丟失的情況,可以在刪除內(nèi)部表的語句中指定PURGE,將刪除的內(nèi)部表數(shù)據(jù)放入回收站目錄,后續(xù)復(fù)制回收站目錄中刪除的內(nèi)部表數(shù)據(jù)即可。
HDFS默認情況下并沒有開啟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ù)的默認值為0(分鐘),也就是不保存,這里指定參數(shù)值為1440,也就是被刪除的文件會在回收站目錄保存一天;參數(shù)fs.trash.checkpoint.interval表示NameNode檢查回收站目錄間隔的時長,這里指定參數(shù)值為60,也就是NameNode每間隔一小時檢查一次回收站目錄,永久刪除回收站目錄中存放時長超過一天的文件。
在3臺虛擬機Node_01、Node_02和Node_03的Hadoop配置文件core-site.xml中分別添加上述內(nèi)容,添加完成后需要重新啟動Hadoop集群使配置內(nèi)容生效。