在进行数据挖掘的时候,常常需要对数据进行预处理和归一化,当数据量比较小的时候,使用简单的java读写就可以解决问题,但是当数据量一旦太大的时候,比如2个G以上,数据量在百万级的时候,这个时候就容易内存溢出了,因为对于一个pc机根本没有那么大的内存,在公司使用64G内存的服务器时,都出现了内存溢出,所以才有了那篇jvm参数优化的博客(JVM 参数设置bug),因此如何在有限制的内存中,进行高效的读写和数据处理,就是一个很大的问题。
解决方案:
方案1:使用单线程,分多次处理,每一次都是边读边处理的方式。
方案2:使用多线程,一个线程读,一个处理,一个线程写。
1.java解决大数据读写问题:http://blog.csdn.net/zhxue123/article/details/5064690
2.java多线程分片处理大文本文件 :http://bbs.csdn.net/topics/390439099?page=1