java如何多线程分析大量的压缩文件

aqxiebin 2011-08-05 03:56:35
现在碰到了一个难题哈,就是我们公司要分析大量的日志文件,分别放在不同的文件夹,但是这个日志被压缩成gz格式。而我的任务就是分析日志里面的某些字段。我原来想的流程是多线程读取这些文件,然后进行解压,换成流来处理,但是不懂的该如何进行多线程分析?
...全文
383 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aqxiebin 2011-08-08
  • 打赏
  • 举报
回复
大家还有其他办法吗?
aqxiebin 2011-08-08
  • 打赏
  • 举报
回复
这边我自己总结一下吧,我这边说的意思是说,分析6T的文件,是指找出符合条件的几千个文件吧,而且我发现多线程读取文件不实际,因为磁盘的IO读写必定是单线程,除非你有多块硬盘。所以唯一要想的办法不是多线程去读取文件了,而是只能放在怎么提高处理文件的效率上了。。
想喝咖啡的貓 2011-08-08
  • 打赏
  • 举报
回复
是zip格式的话,解一部分 分析完 再解一部分就行。
bawgiitx 2011-08-08
  • 打赏
  • 举报
回复
1000GB/300S=3.333GB/S
每秒最少得讀3GB的數據,硬盤有這麼快嗎
wula0010 2011-08-05
  • 打赏
  • 举报
回复
以T为单位的文件,多线程打开,会占用很多内存的,线程不能开的太多,再说,压缩文件如果你不解压缩,你怎么读文件的内容啊,肯定要解压缩的,...........
aqxiebin 2011-08-05
  • 打赏
  • 举报
回复
回复2楼:
解压出来到指定的目录,不行,因为本身那个日志文件差不多有很多很多,差不多以T为单位,已经几乎把硬盘占满,我们不能进行解压出来。速度就是我们至少要求5分钟内搞定。。我最想问的是如何保证多线程在工作的时候,不会读取到相同的文件。
回复3楼:
这个建索引无用,我要分析全部的日志文件,索引只是更快的去搜索,而不是更快的去读取。
我现在又有了点思路,大家帮忙看一下,根据2楼的启发。
第一我先遍历所有的文件,但是先不进行分析,利用递归先存入一个LinkedList当中,然后分析有多少个压缩文件,进行平均,然后开启线程池100个或者更多,然后利用线程池处理每个平均部分?不知道大家有没有试过,这样可行?
shawn.bug 2011-08-05
  • 打赏
  • 举报
回复
文件可以建立索引结构
启动多个线程根据索引去处理文件
想喝咖啡的貓 2011-08-05
  • 打赏
  • 举报
回复
文件名为key,线程为value 找个Map存。 把这堆线程放线程池里。

每个线程找个独立的文件解压到指定目录下,并分析里面的文件。

另外,怎么个分析法? 有没有速度什么的要求?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧