摘要

本文主要调研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

SSD对HADOOP集群性能提升 调研及测试计划相关推荐

  1. [ hadoop ] 集群性能调优全面总结

    [ hadoop ] 集群性能调优全面总结_bone_ds的博客-CSDN博客_hadoop集群优化 引子 文章涵盖了hadoop框架的三个组成架构各自的优化方法,涉及存储,计算,故障排除等多个方面的 ...

  2. Hadoop集群性能优化一

    挺喜欢这句话:"坚持,是基于 你对某件事的热爱,才能有动力坚持下去. 在学习的过程中,需要战胜自己的惰性和骄傲!"好了,下面说下如何提升 集群的性能: 在硬件方面,第一,商业硬件并 ...

  3. FreeBSD下安装配置Hadoop集群(性能调优)

    hadoop的性能调优是个比较艰难的事情,由于这个系统的整个环境比较复杂,对于接触时间不长的人来说,配置都很难,更别说找出性能优化的点了. 性能优化涉及的方面很广,操作系统,网络配置,配置文件,调度器 ...

  4. 《Hadoop集群与安全》一2.1 在Hadoop集群中配置操作系统

    本节书摘来自华章出版社<Hadoop集群与安全>一书中的第2章,第2.1节,作者 (美)Danil Zburivsky Sudheesh Narayanan,更多章节内容可以访问云栖社区& ...

  5. 用 Ganglia 监控基于 Biginsights 的 HBase 集群性能

    2019独角兽企业重金招聘Python工程师标准>>> BigInsights 和 HBase 简介 InfoSphere BigInsights 是 IBM 集成和开发的一个大数据 ...

  6. 深入理解Hadoop集群和网络

    云计算和Hadoop中网络是讨论得相对比较少的领域.本文原文由Dell企业技术专家Brad Hedlund撰写,他曾在思科工作多年,专长是数据中心.云网络等.文章素材基于作者自己的研究.实验和Clou ...

  7. Hadoop集群高可用及zookeeper+kafka组件搭建

    目录 一.Hadoop集群高可用 1.Zookeeper概述 1)Zookeeper基本概述 3)Zab协议 3)observer 4)zookeeper集群图例 2.zookeeper集群搭建 3. ...

  8. 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)

    1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开 ...

  9. 配置伪分布式hadoop集群(附常见配置问题)

    配置伪分布式hadoop并运行wordcount程序 ps:本教程在虚拟机和阿里云服务器上都配置成功,建议使用虚拟机(容易成功).本实验最后将运行hadoop自带的wordcount程序用以检验配置是 ...

最新文章

  1. java编程100题
  2. 【python教程】对多线程中join()的详细教程
  3. ARP协议抓包分析 -- wireshark
  4. 2.1TF模型持久化
  5. 深度学习之递归神经网络(Recurrent Neural Network,RNN)
  6. Docker精华问答 | 如何让一个容器连接两个网络?
  7. WINDOWS环境下RABBITMQ的启动和停止命令
  8. ubuntu 12 04下安装JDK7
  9. 神秘的40毫秒延迟与 TCP_NODELAY
  10. DevExpress控件学习总结(转)
  11. avalon2 非必填项的表单验证规则
  12. jmeter接口自动化
  13. 报错:TracerWarning: Output nr 1. of the traced function does not match the corresponding output of the
  14. ipv6如何测试服务器已经是ipv6协议,怎么测试域名是否支持ipv6
  15. 服务器上部署java项目
  16. Nginx做负载均衡的模块
  17. 条件极值例题_条件极值的求法(函数极值的求法例题)
  18. A Survey on Metaverse: Fundamentals, Security, and Privacy
  19. Java实现 LeetCode 520 检测大写字母
  20. ultraedit编辑器快速学习

热门文章

  1. webrtc实现视频通话(前端)
  2. php dropdownlist,Yii2中DropDownList简单用法示例
  3. Docker——安装部署
  4. 关于冯诺依曼架构和哈佛架构的一点思考
  5. 16 OAuth2登录流程分析
  6. Unity 之 Texture
  7. vjava计算机毕业设计沙县小吃点餐系统源码+数据库+系统+lw文档+mybatis+运行部署
  8. oracle指定用户SID,oracle怎么捕获用户登录信息,如SID,IP地址等
  9. 数据库模型和表的转换
  10. 【Stata】Stata论文实证分析的基础代码分享