大日志处理问题
问题描述:有几个压缩好的大日志文件,压缩后,2,3G,解压后估计有5,6G
需要将这些日志解析出来,存储到分布树数据库中去。看了下线上的机器,虽然
每个机器的绝对内存都可以将这些数据读入进去,但是正常可用内存却只有几个G
而且还要被其他程序占用,解析代码用JAVA来写,运行JAVA代码的时候可以指定
使用的内存XMS,XMX。
解决方法: 由于日志信息允许有一定的丢失,所以可以采用将文件切割的办法,
将大文件切割为一个个的小文件,然后JAVA代码在将这些小文件读进去处理。这样
以来运行时占用的内存就可以控制在一定范围内。
日志切割采用SHELL脚本下面的:split -b 100m $openFile 将日志切分为每个100M
这样每次只需要读入100M的数据进行处理。一行一条数据的话,切割完也就丢失几十条
日志信息而已,可以接受。