这篇文章展示了简单的shell命令在某些数据处理任务上如何大幅超越Hadoop。作者受一个使用Amazon EMR和mrjob分析国际象棋游戏数据的项目启发,发现一个1.75GB的数据集使用Hadoop处理需要26分钟,而基于shell的方法在笔记本电脑上完成相同的任务仅需12秒。 关键在于利用shell管道固有的并行性。通过使用`grep`、`sort`、`uniq`和`awk`等工具,作者构建了一个流处理管道,几乎不需要内存,并且速度比Hadoop实现快超过235倍。使用`xargs`并行化瓶颈进一步提高了性能。 作者强调了“大数据”工具的常见误用,认为对于不需要大规模分布式处理的任务,更简单的解决方案通常更有效。最终的管道,利用`find`、`xargs`和`mawk`,在12秒内处理了3.46GB的数据,速度达到270MB/秒,展示了现成工具在高效数据分析方面的强大能力。结论是:在默认使用复杂大数据框架之前,请考虑更简单的替代方案。