首页 > 其他分享 >hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化

hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化

时间:2023-08-08 11:33:16浏览次数:33  
标签:HDFS fs 删除 文件 hadoop --- 优化 回收站


Hadoop 空间不足,hive首先就会没法跑了,进度始终是0%。

hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化_hadoop

将HDFS备份数降低

将默认的备份数3设置为2。

步骤:CDH–>HDFS–>配置–>搜索dfs.replication–>设置为2

hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化_hdfs_02

删除无用HDFS数据和Hbase表格

主要使用命令hadoop fs -du,hadoop fs -ls,hadoop fs -rm
空间不足根本的解决办法自然是清理空间。但是清理空间也要有步骤。
检查总体情况

hadoop dfsadmin -report

检查每个目录

hdfs dfs -du -h /

删除表
先清理数据表,去hive,impala里删除表
进入hive shell;
使用命令

drop table tablename;

清理完表之后,删除文件
使用命令


hadoop fs -rm -skipTrash filename;

hadoop fs -rmr -skipTrash directoryname;

删除的时候要注意使用-skipTrash选项,否则不会马上删除,而是转到垃圾桶了

删除本机linux无用文件

使用命令找出大于1G的文件看看哪些是可以删除的

find /hadoop/dfs1 -size +1000M -exec ls -lh {} \;

清理Trash回收站

使用命令

hadoop fs -rmr  -skipTrash /user/root/.Trash;

或者

hdfs dfs -expunge

执行完-expunge命令后,回收站的数据不会立即被清理,而是先打了一个checkpoint。显示的是一分钟后清除。
实际验证,11T的数据需要好几分钟…..

和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期,也就是当系统回收站中的文件/目录在一段时间之后没有被用户回复的话,HDFS就会自动的把这个文件/目录彻底删除,之后,用户就永远也找不回这个文件/目录了。在HDFS内部的具体实现就是在NameNode中开启了一个后台线程Emptier,这个线程专门管理和监控系统回收站下面的所有文件/目录,对于已经超过生命周期的文件/目录,这个线程就会自动的删除它们,不过这个管理的粒度很大。另外,用户也可以手动清空回收站,清空回收站的操作和删除普通的文件目录是一样的,只不过HDFS会自动检测这个文件目录是不是回收站,如果是,HDFS当然不会再把它放入用户的回收站中了

根据上面的介绍,用户通过命令行即HDFS的shell命令删除某个文件,这个文件并没有立刻从HDFS中删除。相反,HDFS将这个文件重命名,并转移到操作用户的回收站目录中(如/user/hdfs/.Trash/Current, 其中hdfs是操作的用户名)。如果用户的回收站中已经存在了用户当前删除的文件/目录,则HDFS会将这个当前被删除的文件/目录重命名,命名规则很简单就是在这个被删除的文件/目录名后面紧跟一个编号(从1开始知道没有重名为止)。

Balancer重新平衡

集群运行一段时间后各个节点的磁盘使用率可能会产生较大的差异,这时可以用balancer来重新平衡各个节点。

首先调大balancer的带宽这里设置为50MB。默认的带宽较小,防止占用太多资源。若需要快速平衡可以将带宽调为一个较大的值。
管理后台–HDFS—配置–搜索bandwidth

接着启动balancer。在管理后台中操作,步骤 hdfs-状态-操作-重新平衡

hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化_hdfs_03

调整回收站的清理时间

Hadoop回收磁盘空间通过在core-site.xml进行设置实现。
在xml文档内添加:

<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>
</code>

通过修改value的值来设定回收磁盘空间的时间间隔。如果value是0,默认是关闭此项功能的

调整自动清除回收站

HADOOP-HDFS需要有一个Auto-Emptier 线程来自动清除trash, 以释放HDFS的总使用空间, 该功能可以配置为可选项, 可以在Configuration下增加这两个参数以供配置.

fs.trash.autoemptier.interval 执行空间检查的时间时间隔, 设置为0时, 禁用该功能, 默认为20 Seconds.
fs.trash.max.percentused 当已使用空间率大于该值, 执行回收以释放空间. 默认为0.8f

调整kafka的日志时间

步骤:管理后台–>kafka–>配置–>搜索log.retention.hours–>设置为30天

调整hbase的TTL时间

设置TTL为2592000,30天

./hbase shellhbase> desc 'ns1:t1'hbase> disable 'ns1:t1'hbase> alter 'ns1:t1', {NAME => 'n1', TTL => '2592000'}, {NAME => 'n2', TTL => '2592000'}hbase> enable 'ns1:t1'

设置成功后,hbase自动将过期数据删除,进行合并region操作。磁盘空间得以释放。


标签:HDFS,fs,删除,文件,hadoop,---,优化,回收站
From: https://blog.51cto.com/u_16218512/7006324

相关文章

  • 遇到问题---hadoop----local-dirs are bad
    遇到的问题我们的hadoop集群在运作过程中部分节点报错local-dirsarebad原因hadoop集群硬盘目录默认的使用阈值是90%空间不足,目录使用率超过阈值了90%了解决方式调整yarn的参数yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage把比例调高到9......
  • hadoop案例(一)--hive--2T数据动态创建分区
    我们在使用hadoop集群过程中,发现网上很少有具体的数据使用分析案例,也就是说我们不知道多少个节点处理多少大小的数据量耗费多少时间是合理的哪些是需要优化的。为了增加这方面的相关经验,我们会记录一下实际的使用案例。以供大家参考。配置如图:耗费时间如图:执行语句sethive.exe......
  • 遇到的情况---hadoop集群-- NodeManager启动不起来--java.io.FileNotFoundException
    情况hadoop集群nodemanager启动不起来,查看输出的日志报错java.io.FileNotFoundException:/hadoop/dfs1/log/hadoop-yarn/hadoop-cmf-yarn-NODEMANAGER-host251.log.out(Read-onlyfilesystem)管理后台点击查看NodeManager的日志文件,角色日志文件时报错访问不到。原因目录损......
  • 数据仓库(十一)---hive使用小技巧积累(持续更新)
    我们在本章节会持续更新关于hive使用过程中的一些实用的小技巧HIVE查询显示列名及行转列显示hiveshell;sethive.cli.print.header=true;//打印列名sethive.cli.print.row.to.vertical=true;//开启行转列功能,前提必须开启打印列名功能sethive.cli.print.row.to.ve......
  • 数据仓库(十二)---分布式SQL查询引擎---teradata版本的presto安装和使用
    我们在使用presto过程中,发现facebook原版和京东原版都是解压可用,teradata版本的安装要麻烦一些。下面对teradata版本的安装过程进行记录。首要条件1、需要python2.6或者python2.7环境之所以需要python环境是因为teradata版本的presto把安装封装成了集群式安装。根据配置在安装过......
  • ubuntu安装docker和docker-compose
      ubuntu系统docker和安装,并安装docker-compose安装dockeraptinstalldocker.io设置docker为开机自启systemctlenabledocker安装docker-composeaptinstalldocker-compose修改配置,设置国内镜像仓库和本地镜像仓库vi/etc/docker/daemon.json{"registry-......
  • 2023-8-8新版本数据录入指南
    人工费对应明细列入材料费对应明细列入机械费对应明细列入专业分包费用对应明细列入措施费对应明细列入间接费对应明细列入(注意其他费用不用录入这里)其他费用录入规费税金录入税金(不用录取税率)将税额填入基本信息如果含税金额差异不大(小数点后的区别)就完成了......
  • vue 线上环境 开启 vue-devtools
      vue项目打包正式环境时,是没有vue-devtools选项卡的,没法看vue内部的数据 选中Source选项卡,找到打包好的app.js,并格式化 ctrl+f搜索$mount并在new那里打断点,new后面的对象就是Vue对象,需要记住该变量名,下一步要用到F5刷新页面就就会进入断点,并在控制台......
  • web开发----jsp中通用模版的引用 include的用法
    web开发中常常会有一些代码需要多个页面使用,比如banner nav导航 还有footer等.ASP.NET开发中有母版页的说法,也就是写一些通用的模版页,然后其他页面可以引用。 jsp中 当然也有这样的用法 也就是include的用法 两种用法一种是说明标签<%@include file="xxx.jsp"%>,......
  • centos安装php php-fpm 以及 配置nginx
    下载php源码包http://www.php.net/downloads.php安装phptar-xvfphp-5.5.13.tar.bz2cdphp-5.5.13./configure--prefix=/usr/local/php--with-config-file-path=/etc--enable-inline-optimization--disable-debug--disable-rpath--enable-shared--enable-opcache--......