Hadoop(10) 多个集群之间的数据拷贝、hdfs快照管理、hdfs回收站管理

多个集群之间的数据拷贝

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

1、本地文件拷贝scp

cd /kkb/soft

scp -r jdk-8u141-linux-x64.tar.gz hadoop@node02:/kkb/soft

2、集群之间的数据拷贝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、开启指定目录的快照功能(创建快照之前要执行次步骤)

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>  

hdfs回收站

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

可在core-site.xml配置两个参数

<property>
    <name>fs.trash.interval</name>
    <value>10080</value>
</property>
<property>
    <name>fs.trash.checkpoint.interval</name>
    <value>值</value>
</property>

fs.trash.interval默认值为00表示禁用回收站,不是0就表示启动了回收站,这个代表回收站的文件的存活时间,过了这个时间文件就会被删掉。

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

要求fs .interval <=fs.trash.interval

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

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

查看回收站

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

恢复回收站数据

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

清空回收站

 hdfs dfs -expunge
posted @ 2020-08-25 23:48  Whatever_It_Takes  阅读(527)  评论(0编辑  收藏  举报