摘要

本文主要调研SSD对于HADOOP集群性能的影响,并制定相应的测试计划,性能影响主要针对常见的HADOOP,HBASE,HIVE三个组件。

通过调研发现,组件自身也在考虑SSD对其产生的性能影响,并做了针对性更新,其中HADOOP作为基础组件,分别在2.3.0版本和2.6.0版本提供了对混合存储和分层存储的支持。这些更新已经在一些大的公司中得到了应用,EBAY通过在集群中使用分层存储,在不降低集群性能的情况下,降低了集群的功耗和成本【12】。除了HADOOP外,HIVE也提供了临时表的MEMORY和SSD的支持。HBASE未提供专门针对SSD的更新,但因其与HDFS的紧密关系,以及其数据访问的特点,SSD对其性能提升效果非常好【13】。

Intel,Sandisk,Cloudera以及一些科研机构,在该方向上也做了大量的测试研究工作,通过测试发现,SSD能够减少能耗【8】,能够提升性能,降低成本,并能够解决数据扩展导致的存储和计算不均衡的问题【12】。

基于以上调研,我针对市面上现有的企业级SSD和组件版本制定了一个测试计划。

测试主要考虑两种场景,一种是新集群搭建的情况下,SSD对集群性能和成本的影响。一种是旧集群的扩展和优化, SSD对集群性能和扩展成本的影响。


一.  介绍

本文主要调研SSD对于HADOOP集群性能的影响,并制定相应的测试计划,性能影响主要针对常见的HADOOP,HBASE,HIVE三个组件。

通过调研发现,组件自身也在考虑SSD对其产生的性能影响,并做了针对性更新,其中HADOOP作为基础组件,分别在2.3.0版本和2.6.0版本提供了对混合存储和分层存储的支持。这些更新已经在一些大的公司中得到了应用,EBAY通过在集群中使用分层存储,在不降低集群性能的情况下,降低了集群的功耗和成本【12】。除了HADOOP外,HIVE也提供了临时表的MEMORY和SSD的支持。HBASE未提供专门针对SSD的更新,但因其与HDFS的紧密关系,以及其数据访问的特点,SSD对其性能提升效果非常好【13】。

Intel,Sandisk,Cloudera以及一些科研机构,在该方向上也做了大量的测试研究工作,通过测试发现,SSD能够减少能耗【8】,能够提升性能,降低成本,并能够解决数据扩展导致的存储和计算不均衡的问题【12】。

基于以上调研,我针对市面上现有的企业级SSD和组件版本制定了一个测试计划。

测试主要考虑两种场景,一种是新集群搭建的情况下,SSD对集群性能和成本的影响。一种是旧集群的扩展和优化, SSD对集群性能和扩展成本的影响。

文章接下来将在第二章介绍组件和SSD的背景知识,第三章汇总调研的详细结果,第四章根据调研结果制定测试计划,第五章说明后续需要完善的工作,第六章为参考文献。

 

二.  背景

此处主要介绍对研究有较深影响的事件,这里主要列举了组件更新和SSD更新。

1.      组件更新

2014年1月,HADOOP2.3.0更新了混合存储的支持

2014年11月,HADOOP2.6.0更新了混合存储层级的进一步支持,并开放API。

2015年3月,HIVE1.1开始临时表可以存储在内存或SSD,使用hive.exec.temporary.table.storage参数进行配置,该参数有三种取值:MEMORY、SSD、DEFAULT。

HBASE目前还没有专门更新针对SSD的优化,但HBASE依赖于HDFS存储,所以也受益于其更新。

 

2.      SSD发展说明

SSD吞吐量和IOPS都远高于HDD,单位价格持续下降,无障碍运行时间在不断向HDD靠拢,差距已经不是很大。

SSD主要优势在随机读写,连续读写也有优势,但性价比较低。

 

注:此处还需要继续调研。

 

三.  调研结果

近期主要调研了国内外关于SSD对于大数据集群的影响所做的测试工作,具体调研的文章见最后的参考文献,其中有厂商的测试报告,也有科研机构的测试文献以及一些期刊的文章。这里对于测试的结果进行汇总,更具体的测试结果汇总请见附件《SSD影响调研结果汇总.xlsx》

结论:

1. 通过指定mapred.local.dir参数,将MapReduce中间的Shuffle结果输出到SSD上,将获得巨大的性能提升。HDD,SSD的混合配置是提升集群性能最具性价比的方案【1】【5】【9】【11】。

2. 借助混合存储结构,SSD能够减少能耗【8】,能够提升性能,降低成本,并能够解决数据扩展导致的存储和计算不均衡的问题【12】。

3. 混合存储集群,SSD最好分成不同的本地目录添加到dfs.data.dir;因为任务分配数据平均分配,SSD获得的数据量相对于其吞吐量来说要小的多,所以要分成多个文件,来获得更多的数据;来发挥其吞吐量优势【11】。

4. HIVE测试,混合结构,每个DATANODE部署一块SSD用于MapReduce的中间数据,可以提升聚合性能9%,提升联合查询性能17%;全部使用SSD,可以提升聚合性能17%,联合查询性能27%;对于Scan性能,SSD提升不大,因为Scan操作不是IO密集型操作【4】。

5.CPU密集型操作,SSD性能改善很少【1】。

6.当需要处理的数据量小于内存量时,数据可以全部加载到内存;固态硬盘的优势无法体现【11】。

7.HDFS读写IO类型为连续读写,使用SSD能够带来性能提升,但性价比不高【1】。

 

四.  测试计划

1    测试目的

1.1    在相同成本的情况下,测试SSD解决方案相对HDD解决方案带来的性能提升。

1.2    在相同成本的情况下,测试不同SSD解决方案的性能对比。

1.3    在相同成本的情况下,测试不同组件版本下的SSD解决方案的性能对比。

2    测试方法说明

2.1    HDFS

a)     TeraGen,三副本,带大量网络传输

b)     TeraRead, 只读,没有排序和reduce

c)     Terasort, read,write,shuffle 1:1:1

d)     TeraValidate,读密集工作,带sort和validattion,类似TeraRead

e)     WordCount,CPU密集型

f)     TestDFSIO

g)     HiBench

2.2    HIVE

a)    AMPLab Benchmarkfor Hive

2.3    HBASE

a)     Ycsb 雅虎测试工具

3    测试场景

测试场景主要分新集群和旧集群两种,需要测试的情况还包括下列条件变化。

3.1    存储类型:纯HDD,SSD-HDD混合,纯SSD

3.2    数据量:少量10G,正常100G,大量1T;根据不同组件将有所调整

3.3    组件版本,需要覆盖关键更新前后的版本:

cdh4.6.0(hdp2.0+hb0.94.15+hi0.10.0);cdh5.1.3(hdp2.3+hb0.98+hi0.12.1);
cdh5.3.5(hdp2.3+hb0.98+hi0.13.1);
cdh5.7.0(hdp2.6+hb1.2+hi1.1);

3.4    任务类型:CPU密集型,存储密集型-连续读写,存储密集型-随机读写,通过测试方法来区分

4    硬件环境需求

    至少4节点集群,最好是6节点,集群存储空间要达到1T以上,考虑到HDFS至少3副本,实际存储空间要达到3T以上。

 


硬件

软件

数量

Lenovo RD640

CPU  E5-2650 0 @ 2.00GHz(8 core,16 threads,L3 cache 20MB)

内存 64G

CentOs 7.0

 

 

6

MR9270-8i希捷3.5’ 7200r SATA 1.8T

 

6*6

SMC2108 256GB

 

4*6


 

五.  后续工作

1.调研SSD发展以及市面上主流的企业级SSD,并对其进行本文中的测试;通过横向对比提供最具性价比的SSD解决方案。

 

 

 

 

六.  参考文献

【1】     KarthikKambatla and Yanpei Chen,The Truth About MapReduce Performanceon SSDs

【2】     Sandisk,increasing-hadoop-performance-with-sandisk-ssds-whitepaper

【3】    Sandisk,cloudspeed-sata-ssds-support-faster-hadoop-performance-and-tco-savings

【4】     sandisk ,SanDiskSolid State Drives (SSDs) for Big Data Analytics Using Hadoop and Hive

【5】     SangwhanMoon,Jaehwan Lee,Yang Suk Kee Introducing SSDs to the Hadoop MapReduceFramework

【6】    Sungyong Ahn and Sangkyu Park ,An Analytical Approach toEvaluation of SSD Effects

【7】    Sangwhan Moon,Jaehwan Lee,Yang Suk Kee, Optimizing theHadoop MapReduce Framework with high-performance storage device

【8】     Ivanilton ,Hybrid HDFS: Decreasing Energy Consumptionand Speeding up Hadoop using SSDs

【9】     Nicole Hemsoth,opening-the-door-for-wider-hadoop-storage-strategies

【10】  Nicolas Poggi, Evaluating the impact of SSDs andInfiniBand in Hadoop cluster

【11】   LoganHarbaugh ,deep-to-discover-where-ssd-performance-pays-off

【12】   BenoyAntony ,hdfs-storage-efficiency-using-tiered-storage

【13】   intel ,OptimizeHadoop Cluster Performance with Various Storage Media