【hadoop】 java客户端 使用append方法添加文件时报hdfs空间不足
2018-01-03 21:50
381 查看
使用java 代码 append 文件 实际上是创建一个新文件与存在的文件合并,然后丢弃(这部分操作时透明不可见)。
在创建新文件的时候,hdfs会预先给其划分一个 block大小的空间,即使该文件小于 block大小 。所以当append的内容过小时,容易产生大量的block文件,造成资源的浪费,占用过多的空闲资源,不等操作完成,还未回收该block空间,此时hdfs系统空间不足,报错。
解决方法:
将append的文件大小改为与block大小相等,一个是减少io操作,一个是减少空间占用
在创建新文件的时候,hdfs会预先给其划分一个 block大小的空间,即使该文件小于 block大小 。所以当append的内容过小时,容易产生大量的block文件,造成资源的浪费,占用过多的空闲资源,不等操作完成,还未回收该block空间,此时hdfs系统空间不足,报错。
解决方法:
将append的文件大小改为与block大小相等,一个是减少io操作,一个是减少空间占用
相关文章推荐
- 使用JAVA将Hadoop HDFS中的日志文件导入HBase中(一)
- Hadoop HDFS 文件访问权限问题导致Java Web 上传文件到Hadoop失败的原因分析及解决方法
- hadoop系列二:HDFS文件系统的命令及JAVA客户端API
- eclipse使用JavaAPI操纵Hadoop的HDFS文件系统时提示权限不足的解决方案
- 使用MyEclipse无法上传文件到Hadoop HDFS的原因与解决方法
- 使用JAVA将Hadoop HDFS中的日志文件导入HBase中(二)
- 新建java项目使用this.classLoader.getResourceAsStream方法导入xml文件时报找不到文件原因
- Myeclipse2015 Jrebel插件的安装、配置、使用(新建.java文件、给类添加新方法、新属性、修改代码等,不用重启tomcat即可更新)
- Python中list的append方法添加,和使用下标取得。之中的元素还可以是其他的数据结构
- java反射调用配置文件构造类对象,使用其方法
- 在AIX上用IBM的JVM,内存溢出时默认地会产生javacore文件(关于cpu的)和heapdump文件(关于内存的)。手动产生堆栈文件的方法是使用kill -3
- 使用ASM对JAVA class file进行修改的技术 -- 添加类方法
- vc6.0无法使用“添加到工程”或者"打开文件"解决方法
- 远程Java客户端上传文件到HDFS
- java.policy 文件格式及使用方法
- 在VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境05_HDFS文件系统和Mapreduce框架的启动和运行
- JAVA学习提高之----使用J2SE API读properties文件的六种方法
- JAVA访问firebird数据库之Jaybird-2.1.6JDK_1.5+相关DLL文件+使用方法
- JAVA实现压缩文件的方法(使用java.util.zip.*)
- [Java Eclipse] 使用Eclipse发布jar包以及制作exe文件的方法