Trash

trash位于org.apache.hadoop.fs包中,通过传入fs和conf创建

public Trash(FileSystem fs, Configuration conf) throws IOException {super(conf);this.trashPolicy = TrashPolicy.getInstance(conf, fs, fs.getHomeDirectory());
}

trash是hdfs中的回收站功能,可以将误删和需要找回的文件在自定义时间内通过/user/用户名/.Trash/路径找回。

Trash配置

添加配置 /etc/hadoop/conf/core-site.xml
fs.trash.interval中的value值单位为时间,可以自定义回收站的文件清理时间,如果value为0则默认不开启回收站

   <property>  <name>fs.trash.interval</name>  <value>1440</value>  <description>Number of minutes between trash checkpoints.  If zero, the trash feature is disabled.  </description>  </property>  <property><name>fs.trash.checkpoint.interval</name><value>1440</value></property>

hdfs shell

通过skipTrash 参数可以将不需要移入回收站的文件直接删除

hdfs dfs -rm -r -skipTrash  /

清空回收站

hdfs dfs -expunge

java操作trash

//获取conf
Configuration configuration = new Configuration();
//设置conf
configuration.set("fs.defaultFS", "hdfs://192.168.200.20:9000");
//获取fs
FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.200.20:9000"),configuration,"root");
//目标路径
String hdfsPath="/netdisk/"+userinfo.getUsername()+"/"+fileinfo.getPath();
//创建trash
Trash trash = new Trash(fileSystem,fileSystem.getConf());
//通过传入的path将hdfs中的目标文件移入回收站
//moveToTrash返回值为boolean类型,如果为true则成功
boolean b = trash.moveToTrash(new Path(hdfsPath));
System.out.println("==============="+b+"================");

java操作trash不生效解决

在我操作trash时,moveToTrash方法总是会返回false,hdfs文件也没有删除,可能存在:
1.用户权限不足的问题,可以修改hdfs的权限或更换用户
2.java程序找不到hadoop配置的问题,我将 /etc/hadoop/conf/core-site.xml放置在java项目的resources目录下,这样程序会自动到resources目录下,找core-site.xml文件中的配置

hdfs Trash回收站配置 java操作trash不生效解决相关推荐

  1. 【大数据学习】之hdfs垃圾回收站配置

    我们知道linux是没有垃圾回收站的,而hdfs同样默认是没有的,但是hdfs是可以开启垃圾回收站的. 1.我们可以登录官网,选2.8.5版本, https://hadoop.apache.org/d ...

  2. HDFS 的Trash回收站功能的配置、使用

    文件的删除和恢复  和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期 ...

  3. Hadoop Trash回收站使用指南

    转载:https://blog.csdn.net/sunnyyoona/article/details/78869778 我们在删除一个文件时,遇到如下问题,提示我们不能删除文件放回回收站: sudo ...

  4. hdfs java操作_hdfs java操作

    hdfs java操作 一般操作都是shell命令,记一下java操作 package hdfs; import java.io.FileInputStream; import java.net.UR ...

  5. Java 操作 HDFS

    HDFS 作为开源界比较成熟的分布式文件存储系统,适用于海量文件存储,本文介绍了如何使用 Java 操作 HDFS,采用 Maven 管理包. pom.xml <dependency>&l ...

  6. HDFS的Java操作

    实验环境: Windows 10 Eclipse Mars.2 Release (4.5.2) CentOS 7 Hadoop-2.7.3 先决条件: 1) Windows上各环境变量已配置OK.   ...

  7. HDFS文件系统(含hdfs常用命令,java对hdfs API的简单操作)

    HDFS文件系统 HDFS概念 什么是HDFS HDFS的组成 HDFS文件块大小 HFDS命令行操作 基本语法 常用命令 Java操作hdfs 配置编译环境 获取文件系统 上传文件 文件下载 目录创 ...

  8. HBase安装配置以及Java操作hbase

    2019独角兽企业重金招聘Python工程师标准>>> Apache HBase Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储. 当您需要对大数据 ...

  9. hadoop java操作hdfs

    hfds 是一种文件系统,用于存储hadoop将要处理的数据.适用于大规模分布式数据处理,是一个可扩展行的文件分布式系统: 优点 1.如果出现节点宕机,hdfs,可以持续监视,错误检查,容错处理,文档 ...

最新文章

  1. 如何在sqlite3连接中创建并调用自定义函数
  2. R线性回归模型构建:残差值、回归值、预测域、置信区间
  3. python入门新手项目-新手零基础入门Python项目实战
  4. 2021年下软考各省防控要求汇总
  5. 十大笔记本电脑排行_十大笔记本电脑品牌排行榜 世界上最受欢迎的电脑品牌...
  6. [蓝桥杯][2019年第十届真题]外卖店优先级(模拟)
  7. 领航智变时代 2020 NAVIGATE领航者峰会云上起航
  8. securecrt delete键向后删除
  9. 【元胞自动机】基于matlab元胞自动机模拟交通事故道路通行量【含Matlab源码 356期】
  10. VS生成dump文件和调试dump文件
  11. ipv4.method
  12. “牌面”养成记7:宜家的成功不是靠设计?!
  13. 一个客户端多服务器系统,一个客户端多服务器系统吗
  14. 03-Netty中的Future接口
  15. MD5.js,前端MD5加密
  16. 01【AutoSAR 】- Partial Networking
  17. 放置奇兵 算法 阵容克制图 阵营克制
  18. 四轴FPV手动训练进阶步骤
  19. IDEA的Maven Show Dependency使用心得
  20. css+vue绘制蛇形时间轴曲线

热门文章

  1. YOLO数据集划分参数trainval_percent 和train_percent的含义
  2. 各种进制之间的转换方法
  3. physical examination
  4. ListView和CheckBox的混乱问题
  5. Android百度地图测距功能
  6. 为什么Arduino UNO工作电压是5V,但是需要9V的电源适配器
  7. iqooneo3 如何不用vivo账号下载外部应用_你说iQOO Neo 3很香?抱歉,我有不同的意见...
  8. C++在一个类中引用另一个类的对象
  9. Ubuntu新旧版本下载地址
  10. 论文阅读 || 目标检测系列 —— RCNN详解