hadoop 多集群拷贝 快照管理 回收站管理

多个集群之间的数据拷贝

在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷贝到测试集群,那么就需要我们在多个集群之间进行数据的远程拷贝,hadoop自带也有命令可以帮我们实现这个功能
1、本地文件拷贝scp
cd /soft
scp -r jdk-8u141-linux-x64.tar.gz hadoop@node02:/soft
2、集群之间的数据拷贝distcp
cd /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

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

hdfs回收站

任何一个文件系统,基本上都会有垃圾桶机制,也就是删除的文件,不会直接彻底清掉,我们一把都是将文件放置到垃圾桶当中去,过一段时间之后,自动清空垃圾桶当中的文件,这样对于文件的安全删除比较有保证,避免我们一些误操作,导致误删除文件或者数据
1、回收站配置两个参数
默认值fs.trash.interval=0,0表示禁用回收站,可以设置删除文件的存活时间。

默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间。

要求fs.trash.checkpoint.interval <=fs.trash.interval。
2、启用回收站
修改所有服务器的core-site.xml配置文件 ​

fs.trash.interval 10080 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值