【发布时间】:2012-09-24 20:35:15
【问题描述】:
我通常处理约 20 Gb 大小的文本文件,我发现自己经常计算给定文件中的行数。
我现在的做法只是cat fname | wc -l,而且需要很长时间。有没有更快的解决方案?
我在安装了 Hadoop 的高性能集群中工作。我想知道 map reduce 方法是否有帮助。
我希望解决方案像 wc -l 解决方案一样简单,就像一行运行一样,但不确定它是否可行。
有什么想法吗?
【问题讨论】:
-
是否每个节点都已经拥有该文件的副本?
-
谢谢。是的。但是为了访问许多节点,我使用了一个 LSF 系统,它有时会表现出相当烦人的等待时间,这就是为什么理想的解决方案是在一个节点中使用 hadoop/mapreduce 但可以使用其他节点(然后添加等待时间可能会比 cat wc 方法慢)
-
wc -l fname可能更快。你也可以试试vim -R fname,如果这样更快(它应该告诉你启动后的行数)。 -
你可以用猪脚本来做,看我的回复:stackoverflow.com/questions/9900761/…
-
记住useless use of cat规则要快一些。