我们部署好Hadoop集群,在测试和学习环境下对通过参数配置来提供集群资源的利用效率重视不够,但是在实际工作环境下这一点相当重要,这直接影响线上任务的执行时间,系统的吞吐量和资源利用率等。
怎么才能得到符合实际工作需要的最佳参数配置呢?一般是基于在各种情况下对集群性能进行测试得出,这称之为benchmark。伴随参与Hadoop商业化的厂家不断涌现的情况下,各种benchmark工具或者套件也随之产生出来,那么,遴选出一种适合自身需求的工具也就显得重要起来。
针对Hadoop集群性能测试的工具,主要包括GridMix、TPC-DS、YCSB、Hibench、BigDataBench、BigBench等。Intel设计开发的Hibench成为主要的选择,针对Hadoop的基准测试,通过模拟集群工作负载,对它的HDFSIO和MapReduceCPU利用率进行考察,并且通过相关参数调整来对比性能的变化从而达到优化的目的。
Hibench所包含的负载测试用例主要有Sort(IO密集型)、WordCount(CPU密集型)、TeraSort(两者兼有),这些基本上继承了Apache社区早已有之的用例。当然,它还包括搜索引擎和机器学习方面的负载测试。
当然,也应该选择其它的方案来辅助进行负载测试以进一步确定优化方案是否合理。BigDataBench选用了SQL作为测试工具,而Hive是基于Hadoop的数据仓库解决方案,提供了类似SQL的工具,可以通过Hive运行ScanQuery、AggregationQuery、JoinQuery和ExternalScript Query等检查Hadoop系统性能。