Hadoop回收站及fs.trash参数详解
前言:
- Linux系统里,个人觉得最大的不方便之一就是没有回收站的概念。rm -rf很容易造成极大的损失。而在Hadoop或者说HDFS里面,有trash(回收站)的概念,可以使得数据被误删以后,还可以找回来。
- Hadoop里的trash选项默认是关闭的,所以如果要生效,需要提前将trash选项打开,修改conf里的core-site.xml即可,下面我们测试下开启前后的区别:
1.不启用trash
[hadoop@hadoop000 ~]$ hdfs dfs -put test.log /
[hadoop@hadoop000 ~]$ hdfs dfs -ls /
Found 3 items
-rw-r--r-- 1 hadoop supergroup 34 2018-05-23 16:49 /test.log
drwx------ - hadoop supergroup 0 2018-05-19 15:48 /tmp
drwxr-xr-x - hadoop supergroup 0 2018-05-19 15:48 /user
# 删除test.log 注意提示
[hadoop@hadoop000 ~]$ hdfs dfs -rm -r /test.log
Deleted /test.log
# 重新查看 发现test.log被删除
[hadoop@hadoop000 ~]$ hdfs dfs -ls /
Found 2 items
drwx------ - hadoop supergroup 0 2018-05-19 15:48 /tmp
drwxr-xr-x - hadoop supergroup 0 2018-05-19 15:48 /user
2.启用trash
[hadoop@hadoop000 hadoop]$ pwd
/opt/software/hadoop-2.8.1/etc/hadoop
# 增加fs.trash参数配置 开启trash(进程不需重启)
[hadoop@hadoop000 hadoop]$ vi core-site.xml
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>1440</value>
</property>
# fs.trash.interval是在指在这个回收周期之内,文件实际上是被移动到trash的这个目录下面,而不是马上把数据删除掉。等到回收周期真正到了以后,hdfs才会将数据真正删除。默认的单位是分钟,1440分钟=60*24,刚好是一天;fs.trash.checkpoint.interval则是指垃圾回收的检查间隔,应该是小于或者等于fs.trash.interval。
# 参考官方文档:http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-common/core-default.xml
[hadoop@hadoop000 ~]$ hdfs dfs -put test.log /
[hadoop@hadoop000 ~]$ hdfs dfs -ls /
Found 3 items
-rw-r--r-- 1 hadoop supergroup 34 2018-05-23 16:54 /test.log
drwx------ - hadoop supergroup 0 2018-05-19 15:48 /tmp
drwxr-xr-x - hadoop supergroup 0 2018-05-19 15:48 /user
# 删除test.log 注意提示的不同
[hadoop@hadoop000 ~]$ hdfs dfs -rm -r /test.log
18/05/23 16:54:55 INFO fs.TrashPolicyDefault: Moved: 'hdfs://192.168.6.217:9000/test.log' to trash at: hdfs://192.168.6.217:9000/user/hadoop/.Trash/Current/test.log
# 发现删除的文件在回收站里
[hadoop@hadoop000 ~]$ hdfs dfs -ls /user/hadoop/.Trash/Current
Found 1 items
-rw-r--r-- 1 hadoop supergroup 34 2018-05-23 16:54 /user/hadoop/.Trash/Current/test.log
# 恢复误删除的文件
[hadoop@hadoop000 ~]$ hdfs dfs -mv /user/hadoop/.Trash/Current/test.log /test.log
[hadoop@hadoop000 ~]$ hdfs dfs -ls /
Found 3 items
-rw-r--r-- 1 hadoop supergroup 34 2018-05-23 16:54 /test.log
drwx------ - hadoop supergroup 0 2018-05-19 15:48 /tmp
drwxr-xr-x - hadoop supergroup 0 2018-05-19 15:48 /user
Hadoop回收站及fs.trash参数详解的更多相关文章
- Hadoop生态圈-zookeeper的API用法详解
Hadoop生态圈-zookeeper的API用法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.测试前准备 1>.开启集群 [yinzhengjie@s101 ~] ...
- linux中与Oracle有关的内核参数详解
工作当中遇到oracle运行时CPU占用率达到90%以上,调小以下参数值后恢复正常. fs.file-max = 65536 net.core.rmem_default=262144 net.core ...
- [spark]-Spark2.x集群搭建与参数详解
在前面的Spark发展历程和基本概念中介绍了Spark的一些基本概念,熟悉了这些基本概念对于集群的搭建是很有必要的.我们可以了解到每个参数配置的作用是什么.这里将详细介绍Spark集群搭建以及xml参 ...
- java架构之路-(分布式)初识zookeeper安装与参数详解
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- [转帖]持久化journalctl日志清空命令查看配置参数详解
持久化journalctl日志清空命令查看配置参数详解 最近 linux上面部署服务 习惯使用systemd 进行处理 这样最大的好处能够 使用journalctl 进行查看日志信息. 今天清理了下 ...
- oracle内核参数详解
一.前言 在生产中,我们安装oracle数据库时,为达到最优我们需要对操作系统的内核参数进行一定的调整.主要从内存.cpu.io以及网络等方面,根据实际情况进行调整.以下参数可供大家参考,如有不当之处 ...
- Nginx主配置参数详解,Nginx配置网站
1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...
- iptables参数详解
iptables参数详解 搬运工:尹正杰 注:此片文章来源于linux社区. Iptalbes 是用来设置.维护和检查Linux内核的IP包过滤规则的. 可以定义不同的表,每个表都包含几个内部的链,也 ...
- chattr的常用参数详解
chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...
随机推荐
- Linux学习笔记01
1.Linux不靠扩展名区分文件类型2.存储设备必须先挂载才能使用3.Windows下的程序不能直接在Linux中安装和运行 一.服务器的管理预配置Linux的目录的作用:/bin/存放系统命令的目录 ...
- Tyvj 1221 微子危机——战略
背景 №.3Summer联盟战前兵力战略转移. 描述 Summer的兵力分布在各个星球上,现在需要把他们全部转移到某个星球上.Summer一共拥有N个星球(1-N),你要把这N个星球上的兵力转到第M个 ...
- Kafka 生产消费 Avro 序列化数据
https://unmi.cc/kafka-produce-consume-avro-data/ https://unmi.cc/apache-avro-serializing-deserializi ...
- 牛客网小白月赛1 B,I
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> ...
- 用ReentrantLock和Condition实现生产者和消费者模式
前面一篇文章<wait.notify应用场景(生产者-消费者模式)>是一种生产者消费者模式实现,今晚这是Lock方式实现,下面是源码: 生产者代码: /** * 生产者 * * @auth ...
- fetch各种报跨域错误,数据无法获取的解决方案
1.介绍 fetch 提供了一个获取资源的接口 (包括跨域). fetch 的核心主要包括:Request , Response , Header , Body 利用了请求的异步特性 --- 它是基于 ...
- C#代码读写XML
<1> 创建XML文档 using System; using System.Collections.Generic; using System.Linq; using System.Te ...
- Python学习系列之异常处理
什么是异常处理 python内置了一套try···except···finally的错误处理机制 当程序出错的时候进行捕捉,然后根据捕捉到的错误信息进行响相应的处理 常用的内建异常 初识异常处理 如例 ...
- cisco PIX
来自为知笔记(Wiz)
- kvm虚拟化网络管理
Linux Bridge 网桥管理 VM2 的虚拟网卡 vnet1 也连接到了 br0 上. 现在 VM1 和 VM2 之间可以通信,同时 VM1 和 VM2 也都可以与外网通信 # Vlan LAN ...