【发布时间】:2012-11-24 23:42:47
【问题描述】:
我需要实现一个简短的 Map-Reduce 程序。我需要做的其中一项操作是将一个 txt 文件拆分为 X 个部分,这样当我只对文件片段执行读取操作时,每个部分都将用作我的 Map 函数的输入。
我可以将文件拆分为更多本地文件,并将每个文件用作 Map 函数的输入。但我正在考虑尝试这个解决方案:在使用 InputStream 构建的 X 扫描仪中将文件拆分到文件的不同位置。
当每个线程都使用 Scanner 对象时,我会遇到同步问题吗?会不会因为每个线程都在尝试访问同一个文件而变慢?
【问题讨论】:
-
您可以将整个文件读取到字符串对象,然后在不同位置之间共享此字符串对象。或者我理解错了你需要什么。贴一些代码...
-
如果 OP 需要使用 map/reduce 来处理文件,我怀疑它是否适合内存...
标签: java synchronization mapreduce java.util.scanner bufferedreader