防误删!为Hive添加回收站功能防止意外删除文件

Hive中的回收站是通过HDFS的Trash功能实现,Trash功能可以将HDFS中删除的文件放入回收站目录(默认回收站目录/user/root/.Trash/Current,其中回收站目录中的root会根据当前操作HDFS的用户名而变化),防止用户意外删除文件,出现无法找回的情况。Hive内部表的数据存放在HDFS中,并且删除内部表时数据也会一同被删除,所以为了防止用户意外删除Hive内部表造成数据丢失的情况,可以在删除内部表的语句中指定PURGE,将删除的内部表数据放入回收站目录,后续复制回收站目录中删除的内部表数据即可。

HDFS默认情况下并没有开启Trash功能,需要在Hadoop的配置文件core-site.xml的<configuration/>标签中添加如下配置内容。

<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash,checkpoint.interval</name>
<valpe>60</value>
</property>
上述配置内容中,参数fs.trash.interval表示回收站目录中文件保存的时间,该参数的默认值为0(分钟),也就是不保存,这里指定参数值为1440,也就是被删除的文件会在回收站目录保存一天;参数fs.trash.checkpoint.interval表示NameNode检查回收站目录间隔的时长,这里指定参数值为60,也就是NameNode每间隔一小时检查一次回收站目录,永久删除回收站目录中存放时长超过一天的文件。

在3台虚拟机Node_01、Node_02和Node_03的Hadoop配置文件core-site.xml中分别添加上述内容,添加完成后需要重新启动Hadoop集群使配置内容生效。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容