`
m635674608
  • 浏览: 5029091 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java file 海量文件处理

    博客分类:
  • java
 
阅读更多

最近在做一个文件处理的系统。大概就是扫描一个文件里面所有的子文件。(文件可能有几百万条,文件不大)

如果有新文件进来。就把这个文件上传到别的服务器上去。然后在服务器在把文件转换数据入库。xml转换成java对象入库。这这里有很多种实现方式。用smb,socket....

 

在测试中发现性能瓶颈在扫描文件的操作中。当文件夹里面的文件多了。所消耗的时间非常多。

 

第一种做法:单线程扫描文件夹里面的文件file.listFiles()。当文件夹里面有10多万子文件的时候。发现速度非常慢.有时候还出现堆溢出的现象。后来就改用了file.list();只取出了文件的名称数组

第二种做法:采用多线程分割file.list()数组。发现速度提升了一点。但是不是很多。有可能是我测试机的配置太差了,奔腾,2G内存的机子。

第三种做法:连多线都用上了。性能还是达不到标准啊。怎么办了。结果我用了filefilter试了一下。在刚开始的时候我就知道filefilter可以过滤文件。但是一直对海量文件处理没什么经验。结果。用filefilter过滤文件试了下。本地扫描12w文件只需1.1秒。基本上是。1秒每万条。我想应该filefilter。java底层封装了。filefilter的实现,。所以才有这么快。

 

 

 

分享到:
评论

相关推荐

    java海量数据读写优化方案

    对大数据文本文件读取(按行读取)的优化,目前常规的方案有三种,第一种LineNumberReader,第二种RandomAccessFile,第三种是内存映射文件在RandomAccessFile基础上调用getChannel().map(...);代码提供在...

    Java处理100万行超大Excel文件秒级响应

    ### Java处理100万行超大Excel文件秒级响应 #### 一、问题背景与需求分析 在项目开发过程中,经常会遇到需要处理大量Excel数据的情况。这些数据可能包括成千上万条记录,每条记录又包含多个字段。传统的处理方式...

    Java操作FastDFS文件上传

    在IT行业中,FastDFS是一个轻量级的分布式文件系统,主要针对海量小文件存储而设计。它具有高可用性、高性能、低耦合性、易扩展等特性,广泛应用于图片、文档等类型的小文件存储场景。Java操作FastDFS文件上传是Java...

    Hadoop海量文本处理1

    ### Hadoop海量文本处理知识点详解 #### 一、Hadoop概览及基本概念 Hadoop是一种开源框架,用于处理和存储大数据集。它基于两个主要组件:**HDFS(Hadoop Distributed File System)** 和 **MapReduce**。这两个...

    利用javaAPI访问HDFS的文件

    ### 使用Java API访问HDFS文件的关键知识点 #### 一、HDFS概述 Hadoop Distributed File System(HDFS)是Apache Hadoop项目的核心组件之一,它为...通过这些基本操作,你可以根据实际需求构建更复杂的文件处理逻辑。

    Hadoop-海量文件的分布式计算处理方案.docx

    总结来说,Hadoop通过HDFS和MapReduce为处理海量文件提供了高效的分布式计算解决方案。Hadoop的易用性使得开发者即使没有并发或分布式系统经验,也能轻松处理大规模数据处理任务。此外,Hadoop还广泛应用于数据挖掘...

    java csv大数据量导出(千万级别,不会内存溢出)

    在Java开发中,处理大数据量的数据导出是一个常见的挑战,特别是在CSV格式的文件处理上。CSV(Comma Separated Values)是一种广泛使用的数据交换格式,因其简单性和通用性而受到青睐。然而,当数据量达到千万级别时...

    java对大数据HDFS文件操作

    在大数据领域,Hadoop分布式文件系统(HDFS)是核心组件之一,用于存储海量数据。Java作为广泛使用的编程语言,提供了丰富的API来操作HDFS,使得开发者能够方便地进行文件的读取、写入、复制、移动等操作。本文将...

    File System 可以同时存储海量大文件和小文件,高并发

    标题中的“File System”指的是文件系统,它是操作系统用于组织、管理和存取文件的重要组成部分。文件系统不仅负责在硬盘或其他存储设备上分配空间,还管理着文件的创建、删除、读取和写入等操作。在现代计算环境中...

    java解析excel

    在Java编程环境中,解析Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据分析等领域。Java提供了多种库来处理Excel文件,如Apache POI、JExcelAPI、OpenCSV等,但最常用的是Apache POI库,它是一个用于...

    基于Hadoop的海量MP3文件存储架构

    实验结果显示,这种基于Hadoop的存储架构在处理海量MP3文件时表现良好,能够有效地缓解NameNode的内存压力,提高系统整体性能。这种方法特别适用于云存储环境,因为云存储需要处理大量来自不同用户的文件访问请求,...

    DistributedRW:用Java编写的分布式读写文件系统

    分布式读写文件系统是现代大型应用处理海量数据的关键技术之一,尤其在云计算和大数据领域中起着核心作用。本文将详细解析标题为“DistributedRW”的项目,它是一个使用Java编程语言实现的分布式读写文件系统。这个...

    Java基础可导入试题文件新.zip

    1. Hadoop:Hadoop是大数据处理的基石,其主要组件HDFS(Hadoop Distributed File System)和MapReduce均用Java开发。理解Hadoop的分发存储和分布式计算原理,以及如何使用Java API进行编程,是大数据开发的基础。 ...

    Hadoop海量数据处理

    1. **Hadoop概述**:Hadoop是基于Google的MapReduce编程模型和GFS分布式文件系统理念设计的,其核心组件包括Hadoop Distributed File System (HDFS)和MapReduce。HDFS提供了高容错、高吞吐量的数据存储,而MapReduce...

    基于Hadoop的分布式文件系统,使用Java语言开发实现了一个本地文件管理系统,其中文件存在于HDFS集群中.zip

    【标题】基于Hadoop的分布式文件系统通过Java实现的本地文件管理系统,将文件存储在HDFS集群中,展示了Hadoop的高效数据处理能力和Java在大数据领域的应用。 【内容详解】 Hadoop是Apache软件基金会开发的一个开源...

    HDFS存取实例(java)

    在分布式存储领域,Hadoop Distributed File System (HDFS) 是一个关键组件,它为大数据处理提供了高容错、可扩展的文件系统。本教程将详细讲解如何使用Java API进行HDFS上的文件存取操作,包括文件上传和下载,以及...

    海量数据的备份和恢复

    通过对比传统数据与海量数据的备份恢复方法,我们可以看出,在处理海量数据时,不仅要考虑备份的速度和存储空间,还需要关注备份的可靠性和恢复的效率。Oracle数据库提供了强大的备份恢复工具,如RMAN,可以帮助用户...

    文件海量修改

    在IT行业中,"文件海量修改"通常涉及到大数据处理和自动化脚本编程,特别是当需要对大量文件进行统一的更改或更新时。以下是一些相关的知识点: 1. **批处理操作**:批处理是指一次性处理多个文件或任务的技术,...

    java实现的数据采集系统.zip

    Java的`File`类和`InputStream/OutputStream`接口可以处理文件读写。 8. **异步I/O(NIO)**:对于大流量的数据采集,传统的同步I/O可能效率低下。Java NIO(New I/O)提供了一种非阻塞的I/O模型,提高了处理效率。...

Global site tag (gtag.js) - Google Analytics