HDFS使用SSD与HDD性能对比

2,097 阅读1分钟

背景介绍

线上有个CDH小集群,其会存最近三个月的数据。再通过impala进行热数据的查询,通过profile执行计划发现在HDFS SCAN部分几乎花光了整个查询的时间。通过增加磁盘数量并没有发现有较大性能的提升,于是乎就想到如果使用SSD是否能有性能的提升呢?本文将通过实验进行对比。

配置情况

HDD目录:

  • [DISK]/data1
  • [DISK]/data2
  • [DISK]/data3
  • [DISK]/data4

SSD目录:

  • [SSD]/data_ssd

硬件配置

机械磁盘: SAS 7200/s 4T 固态磁盘: S4510(960G-SSD-2.5寸-SATA6Gb/s)

表信息

  • 表一:hddtest.table1
  • 表二:test.table1

两个表拥有相同的分区,但是hddtest.table1存储于HDD而test.table1存于SDD。

测试语句

SELECT ndv($tid)  FROM hddtest.table1 WHERE $date >= '2019-01-01' AND $date <= '2019-03-14'
SELECT ndv($tid)  FROM test.table1 WHERE $date >= '2019-01-01' AND $date <= '2019-03-14'

每次执行完一次查询,都会进行缓存清除
sync; echo 1 > /proc/sys/vm/drop_caches

测试结果

序号 表名 查询耗时
1 hddtest.table1 12.229s
2 hddtest.table1 12.584s
3 hddtest.table1 12.208s
4 test.table1 5.599s
5 test.table1 5.591s
6 test.table1 5.796s

在磁盘1:4的情况下,其总的性能还是提升了一倍以上。

相关实验截图

磁盘这块由9.58s --> 2.66s

实验总结

从测试的结果上看,使用SSD对查询性能提升还是很明显的。对于短期的热数据,可以考虑上SSD来进行性能的优化效果。