hadoop核心组件——HDFS系列讲解之HDFS其他功能介绍
多个集群之间的数据拷贝
cd /export/servers/Hadoop-2.6.0-cdh5.14.0/
bin/Hadoop distcp hdfs://node01:8020/jdk-8u141-linux-x64.tar.gz hdfs://cluster2:8020/
hdfs快照snapShot管理
-
开启指定目录的快照功能
hdfs dfsadmin -allowSnapshot 路径 -
禁用指定目录的快照功能(默认就是禁用状态)
hdfs dfsadmin -disallowSnapshot 路径 -
给某个路径创建快照snapshot
hdfs dfs -createSnapshot 路径 -
指定快照名称进行创建快照snapshot
hdfs dfs -createSanpshot 路径 名称 -
给快照重新命名
hdfs dfs -renameSnapshot 路径 旧名称 新名称 -
列出当前用户所有可快照目录
hdfs lsSnapshottableDir -
比较两个快照的目录不同之处
hdfs snapshotDiff 路径1 快照名称1 快照名称2
-
删除快照snapshot
hdfs dfs -deleteSnapshot 路径1 快照名称
HDFS回收站
回收站配置两个参数
默认值fs.trash.interval=0,0表示禁用回收站,此值大于0时表示启用回收站,以分钟为单位的垃圾回收时间。用于设置被删掉的数据在回收站的保存时间,数据在回收站的时间超过这个设置的时间,回收站将其永久删除。
默认值fs.trash.checkpoint.interval=0,如果是0,值等同于fs.trash.interval。以分钟为单位的垃圾回收检查间隔。要求fs.trash.checkpoint.interval<=fs.trash.interval。
启用回收站
<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
查看回收站
回收站在集群的
/user/root/.Trash/
通过javaAPI删除的数据,不会进入回收站,需要调用moveToTrash()才会进入回收站
通过shell命令行删除的数据,会进入回收站。
Trash trash = New Trash(conf);
trash.moveToTrash(path);
恢复回收站数据
trashFileDir :回收站的文件路径
hdfsdir :将文件移动到hdfs的哪个路径下
hdfs dfs -mv trashFileDir hdfsdir
清空回收站
hdfs dfs -expunge