关于HDFS一些你可能不知道的功能(多集群之间数据拷贝、快照snapShot、回收站)

目录

一、多个集群之间的数据拷贝

二、HDFS快照snapShot管理

1. 快照使用基本语法

2. 快照操作实际案例

三、回收站


一、多个集群之间的数据拷贝

在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷贝到测试集群,那么就需要我们在多个集群之间进行数据的远程拷贝,hadoop自带也有命令可以帮我们实现这个功能:

  • 本地文件拷贝scp

cd /kkb/soft
scp -r jdk-8u141-linux-x64.tar.gz hadoop@node02:/kkb/soft
  • 集群之间的数据拷贝distcp

cd /kkb/install/hadoop-2.6.0-cdh5.14.2/
bin/hadoop distcp hdfs://node01:8020/jdk-8u141-linux-x64.tar.gz hdfs://cluster2:8020/

二、HDFS快照snapShot管理

快照顾名思义,就是相当于对我们的hdfs文件系统做一个备份,我们可以通过快照对我们指定的文件夹设置备份,但是添加快照之后,并不会立即复制所有文件,而是指向同一个文件。当写入发生时,才会产生新文件

1. 快照使用基本语法

 1)开启指定目录的快照功能
 hdfs dfsadmin -allowSnapshot 路径 
 
 2)禁用指定目录的快照功能(默认就是禁用状态)
 hdfs dfsadmin -disallowSnapshot 路径
 
 3)给某个路径创建快照snapshot
 hdfs dfs -createSnapshot 路径
 
 4)指定快照名称进行创建快照snapshot
 hdfs dfs -createSanpshot 路径 名称    
 
 5)给快照重新命名
 hdfs dfs -renameSnapshot 路径 旧名称 新名称
 
 6)列出当前用户所有可快照目录
 hdfs lsSnapshottableDir  
 
 7)比较两个快照的目录不同之处
 hdfs snapshotDiff 路径1 路径2
 
 8)删除快照snapshot
 hdfs dfs -deleteSnapshot <path> <snapshotName> 

2. 快照操作实际案例

1)开启与禁用指定目录的快照

[hadoop@node01 hadoop-2.6.0-cdh5.14.2]hdfs dfsadmin -allowSnapshot /user
 Allowing snaphot on /user succeeded
 
[hadoop@node01 hadoop-2.6.0-cdh5.14.2]# hdfs dfsadmin -disallowSnapshot /user
 Disallowing snaphot on /user succeeded

2)对指定目录创建快照

注意:创建快照之前,先要允许该目录创建快照

[hadoop@node01 hadoop-2.6.0-cdh5.14.2]# hdfs dfsadmin -allowSnapshot /user
 Allowing snaphot on /user succeeded

[hadoop@node01 hadoop-2.6.0-cdh5.14.2]# hdfs dfs -createSnapshot /user  
 Created snapshot /user/.snapshot/s20190317-210906.549

通过web浏览器访问快照

http://node01:50070/explorer.html#/user/.snapshot/s20190317-210906.549

3)指定名称创建快照

[hadoop@node01 hadoop-2.6.0-cdh5.14.2]# hdfs dfs -createSnapshot /user mysnap1
 Created snapshot /user/.snapshot/mysnap1

4)重命名快照

hdfs  dfs -renameSnapshot /user mysnap1 mysnap2

5)列出当前用户所有可以快照的目录

hdfs lsSnapshottableDir

6)比较两个快照不同之处

hdfs dfs -createSnapshot /user snap1
hdfs dfs -createSnapshot /user snap2
hdfs snapshotDiff snap1 snap2

7)删除快照

hdfs dfs -deleteSnapshot /user snap1

三、回收站

任何一个文件系统,基本上都会有垃圾桶机制,也就是删除的文件,不会直接彻底清掉,我们一般都是将文件放置到垃圾桶当中去,过一段时间之后,自动清空垃圾桶当中的文件,这样对于文件的安全删除比较有保证,避免我们一些误操作,导致误删除文件或者数据:

1、回收站配置两个参数

默认值fs.trash.interval=0,0表示禁用回收站,可以设置删除文件的存活时间。
默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间。
要求fs.trash.checkpoint.interval <= fs.trash.interval。

2、启用回收站

修改所有服务器的core-site.xml配置文件

<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
<property>
	<name>fs.trash.interval</name>
	<value>10080</value>
</property>

3、查看回收站

回收站在集群的/user/hadoop/.Trash/ 这个路径下

4、通过javaAPI删除的数据,不会进入回收站,需要调用moveToTrash()才会进入回收站

Trash trash = New Trash(conf);
trash.moveToTrash(path);

5、恢复回收站数据

hdfs dfs -mv trashFileDir  hdfsdir
trashFileDir :回收站的文件路径
hdfsdir  :将文件移动到hdfs的哪个路径下

6、清空回收站

hdfs dfs -expunge

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值