我正在处理 2 个大输入文件,每个文件大小为 5GB。 它是 Hadoop map reduce 的输出,但由于我无法在 Map reduce 中进行依赖性计算,我正在切换到优化的 for 循环以进行最终计算(请参阅我之前关于 map reduce 设计的问题 Recursive calculations using Mapreduce
我想就在 java 中读取如此大的文件并进行一些基本操作提出建议,最后我将写出大约 5gb 的数据..
感谢你的帮助
最佳答案
如果文件具有您所描述的属性,即每个键有 100 个整数值,每个键有 10GB,那么您正在谈论的键数量非常多,远远超出了内存所能容纳的范围。如果您可以在处理之前对文件进行排序,例如使用 OS 排序实用程序或具有单个 reducer 的 MapReduce 作业,您可以同时读取两个文件,进行处理并输出结果,而无需在内存中保留太多数据。
关于java - 通过java程序读取大型输入文件(10gb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777061/