预测2015大数据趋势 星环孙元浩为你揭秘

第二个趋势过去大家谈内存计算谈高效迭代计算,当时大家觉得这是非常好的方向,把数据放进内存进行缓存,内存速度是磁盘百倍到千倍,我们把这种技术应用到现实当中发现,内存容量小和价格高是比较大的限制条件,把所有数据全放内存的时候,像Spark,和Hadoop都是运行在JVM上的,内存大的时候,GC影响非常严重,我们能不能用更好的方式缓存数据?随着硬件技术的发展我们发现内存可以被大容量的SSD取代做缓存,这个也是非常明显的趋势。

这张图列出了SSD硬件技术的发展,最底层是硬盘,现在SSD有几个量级的提升,我们拿市场上英特尔P3700 PCIe SSD的数据为例,读性能是每秒钟46万次,是硬盘的一千倍,吞吐量是硬盘10倍以上。还有一些厂商把SSD插在内存卡槽,做成内存条的形式。目前做的性能不如P3700,未来性能会逐渐的提升。SSD的内存相比性能对比显得没有这么大,因为吞吐量内存的数据是8.5GB/s,PCIe的SSD是2.8GB/s也就是只有三四倍的差距,SSD 的性能已经开始向内存接近,同时这个价格也在迅速下降,SSD公司在中国市场非常多,整个价格下降非常明显,今天中国市场可以以一万块钱到两万块钱买1TB的SSD,如果你买内存条只能买128GB的内存条,我们认为用SSD替代是比较好的方案。这是我们一组数据,把数据放在磁盘、内存和SSD上的对比。第一个我们发现我们把数据放在磁盘上,性能作为1的话,我们发现内存的性能仍然是最高的,蓝色的线是数据放在内存中的统计性能,红色的线是PCIe SSD的性能,SSD性能跟内存比较接近,我们看到每一个测试场景性能对比图,发现性能差距最多在30%,平均性能差异9.6%,基本控制在10%以内,你可以以十分之一的价格达到内存只差10%的性能的产品,你原来放在内存里可能只有几百GB或者几个TB的数据,现在你可以把几十TB的东西放在SSD上进行数据分析。

Hadoop2.6提出来一个概念,叫做Storage Tier,在HDFS上提供几层存储,一层是磁盘层,一层是SSD层,还有内存层,我可以指定你文件放在哪个层上面,以128MB数据块为单位,决定放在哪一层上面,以为这样性能可以迅速提升。我们很快发现其实没有那么简单,Hadoop是最早为大容量低速磁盘设计的,SSD比普通磁盘顺序读写性能大10倍,它随机访问性能是磁盘的一千倍,你如果不能利用随机访问的性能优势,你的提升不会像硬件指标这么显著。我们试过ORC格式,性能只比普通硬盘提升不到3倍。我们觉得明年这里有两个趋势,第一个趋势是基于磁盘的Hadoop慢慢开始为SSD做优化,未来会有更多的优化针对SSD专门做的。第二个趋势内存数据库这样厂商也开始觉得内存不够用,我不可能把所有数据都放在内存里,可能是几十T的数据我需要大容量的介质,SSD是理想的替代,已经有很多传统数据库厂商觉得他的数据库要专门为SSD做优化。我们设计了一种新的数据格式,叫做holodesk,以前Spark把数据放在内存里,我们首先把数据从Spark当中剥离出来,放到一个外部的介质上面。然后放到SSD上进行存储编码压缩,这里面采用了我们自己专有的编码技术,当然也有一些索引在上面,做了这个改造以后性能有比较大的提升。这里有一个测试对比,我们比较四种组合情况,一种是基于磁盘文本格式的,第二种在SSD运行TPC-DS的部分结果,我们选TPC-DS部分的场景,因为有的场景是CPU密集型的,磁盘性能不是瓶颈,可能不一定有提升,所以我们选一些IO密集型的场景来测。大家很快发现如果我不改变文件格式,同样文件放在磁盘和放在SSD,它的性能最高提升了1.5倍。这跟我们两三年前做过测试一样,我们把Hadoop集群的DataNode全换成SSD,性能提升大概是40%。把这个数据变成ORC格式,确实有助于提升性能,我可以过滤很多数据,可以充分高SSD的性能,这个格式性能额外得到了2.7倍的提升。但是这个还不够,还没有完全发挥SSD性能的优势,所以我们采用了我们设计的holodesk存储格式,我们采用编码方式也有点与众不同,用了这个存储格式以后比ORC再提升2倍以上,有些纯粹是IO密集的测试场景,可以提升五倍到十倍左右。如果采用新的列式存储方式,我们性能可以比磁盘快8到10倍,相信未来更多软件会专门利用SSD的这种特性。

第三个趋势随着现在传感器网络、物联网的发展,数据产生的速度越来越快,当然在互联网里面早就有实时数据产生,使得实时大数据的技术慢慢开始得到更多的关注,我们预计明年有更多的应用。