Apache Hadoop:最佳实践和反模式

Apache Hadoop: Best Practices and Anti-Patterns (Yahoo! Hadoop Blog)

从模式高度来总结hadoop最佳使用方式,告诉大家如何更好地使用Hadoop(从事物外部用它,不是深入事物内部),总结了以下模式最佳实践:
Grid Patterns 网格模式:
合并多个小输入文件处理过程到少量的maps中,用较大的HDFS block-sizes来处理非常大的数据集。

除非应用程序的maps有很重的CPU边界, 否则没有必要对于单个应用使用超过60,000-70,000 maps

确保maps大小:以便所以map-outputs能被作为一个序列保存在排序缓冲中。

应用应该使用较少的maps并行处理数据,尽可能少,不要有失败恢复。

Combiners可以通过减少网络流量帮助应用的shuffle段. 无论如何,一定要确保Combiner能够提供足够的聚合。

应用应该确保每个reduce能够处理至少1-2 GB数据, 大部分是5-10GB 数据。

应用outputs将是较大文件, 每个文件横跨多个HDFS块以及适当的压缩。

应用应该确保在分布式缓存中的数据不应该比实际的应用任务input需要更多的i/o

应用不应该使用超过10, 15 or 25 计数器.