前言

这段时间在用hdfs,由于要处理的文件比较多,要及时产出旧文件,但是发现hdfs的blocks数一直在上涨,经分析是hdfs写入的速度较快,而block回收较慢,所以分心了一下hadoop删文件的流程,并做了调优,希望对遇到此类问题的程序猿们有帮助。

正文

经分析与查看源码发现,hdfs删除文件的流程是这样的:

(1)java程序中的DFSClient调用delete函数,删除文件

(2)NameNode将文件从他的namespace中删除

(3)NameNode通过心跳的方式,发命令给DataNode,告诉DataNode哪些block块该删除,然后DataNode才真正将文件删除。

当然这里面还有很多详细的流程,这里暂时不解释了,通过查看源码发现,NameNode每次通过心跳发给DataNode的block块数是100, 现在调优有连个地方可以改

(1)把心跳间隔改小一点,这个在配置文件hdfs-site.xml中的dfs.heartbeat.interval 。

(2)让NameNode每次多发给DataNode一些block块,由于是看源码发现的所以就该源码了,后来发现其实可以在配置文件中陪

修改DFSConfigKeys类中的DFS_BLOCK_INVALIDATE_LIMIT_DEFAULT,重新编译hadoop,替换到集群中即可。

更简单的方法就是修改配置文件  dfs.block.invalidate.limit

参考 http://blog.csdn.net/baggioss/article/details/5674359

转载于:https://www.cnblogs.com/smileallen/p/3391473.html

hadoop 提高hdfs删文件效率----hadoop删除文件流程解析相关推荐

  1. Hadoop权威指南:HDFS-目录,查询文件系统,删除文件

    目录 Hadoop权威指南:HDFS-目录,查询文件系统,删除文件 目录 查询文件系统 文件元数据:FileStatus 列出文件 文件模式 PathFilter对象 删除数据 Hadoop权威指南: ...

  2. java删不掉_java删除文件删不掉相关阅读-java删除文件删不掉文章阅读-123文学网...

    U盘里面的文件有些不想要了,想要删除的时候删不掉!遇到这种问题该怎么办呢?下面是小编分享的经验,一起来看一下吧. 1.在系统中打开电脑资源管理器,先选中U盘. 2.点击鼠标右键,在菜单中选择" ...

  3. java 中io的删除文件_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力. 为了方便大家理解,我特意制作了本文对应的视频:总结删除文件 ...

  4. linux里创建文件夹、创建文件夹子文件夹、删除文件夹和文件、访问指定目录级返回上一级目录

    1.新建文件夹 2.删除文件 3.访问目录 一.新建文件夹 mkdir 命令是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用. 1.mkdir xxx:创建文件夹 ...

  5. android 文件 删除文件夹,android 删除文件以及递归删除文件夹

    Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...

  6. ubuntu创建文件夹和删除文件

    创建 名为docker的文件夹 : ubuntu创建文件夹mkdir name mkdir docker 删除 名为docker的文件夹 : ubuntu删除文件rm name rm docker

  7. java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...

    java : enum http://www.cnblogs.com/hyl8218/p/5088287.html 创建文件和文件夹.删除文件和文件夹 http://www.cnblogs.com/m ...

  8. java目录实用工具_JAVA 创建文件和文件夹,删除文件和文件夹的实用工具

    package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...

  9. c# 删除文件,清理删除文件

    c# 删除程序占用的文件,清理删除文件,彻底删除文件,解除文件占用 文件打开时,以共享读写模式打开 FileStream inputStream = new FileStream(name, File ...

最新文章

  1. 常用开源协议介绍以及开源软件规范列表
  2. spring之DelegatingFilterProxy
  3. eclipse里面M2_REPO引用(Maven2安装总结)
  4. UGUI的优点新UI系统四 开源
  5. [教程]发一个iPhone收发邮件设置(163、126邮箱)
  6. oracle 拉文件进ubuntu,ubuntu 18-20 安装oracle java 打开jnlp文件
  7. cocos creator 方法数组_Creator | 优化三剑客之内存!
  8. jQuery.bind事件 详解
  9. ffmpeg转码文件输出rtsp流
  10. 详解Mysql执行计划explain
  11. 考考你、智商题 小明借爸爸500元 又借妈妈500元 买双鞋 970元 还剩30元 还给爸爸10元...
  12. 银河麒麟高级服务器操作系统V10下载安装及安装docker
  13. android的随机之魂
  14. 支付宝称:已支持微信转账,结果被骂惨了...
  15. HCIA网络课程第一周作业
  16. 杰理之上下文件夹播放上文件夹从最后一首播放【篇】
  17. ntpd服务状态及日志查询方式
  18. 菜鸟应用发布 全民跨入APP2.0时代
  19. 不可抗力条款_否则,如果条款
  20. Composer入门教程 - 基本用法

热门文章

  1. 线上服务 CPU 又 100% 啦?一键定位 so easy!
  2. NLP经典算法复现!CRF原理及实现代码
  3. 零样本风格迁移:多模态CLIP文本驱动图像生成
  4. 顶尖985高校,异地布局!
  5. CVPR 2020 夜间目标检测挑战赛冠军方案解读
  6. 万字长文概览深度学习的可解释性研究
  7. 携Science封面、NIPS最佳论文,CMU大神Noam博士毕业,论文已公开
  8. CVPR2020 Oral | 港中文-商汤等开源:自监督场景去遮挡
  9. JVM调优:基本垃圾回收算法
  10. 2020职场AI技能排行榜:TensorFlow热度飙升,Python最火,市场部也在学