Hadoop: Why Not Use RAID?

 一、针对hadoop集群的磁盘配置建议

    针对datanode,建议采用一组单独的磁盘,针对namenode节点,建议采用raid5或raid1来实现针对metadata的冗灾。

二、针对此问题讨论的资料

    针对此问题,两篇文章从不同角度论证为什么Hadoop更青睐JBOD而不是RAID-0。分别是:

  1. Steve Loughran所撰写的《Why not RAID-0? It’s about Time and Snowflakes》,
  2. 对Greg Bruno博士(工程副总裁及StackIQ联合创始人)的一个采访《Proper Care and Feeding of Drives in a Hadoop Cluster: A Conversation with StackIQ’s Dr. Bruno

    Raid0的资料:

    将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,危险程度与JBOD相当。


理论上越多的磁盘性能就等于“单一磁盘性能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,详见:http://zh.wikipedia.org/wiki/RAID#RAID_0


    RAID 0

    Steve Loughran认为,其并不适合Hadoop。
    与RAID-0阵列的同组管理相比,Hadoop更喜欢一组单独磁盘。在Hadoop集群中,读取速度是最能体现性能的重要指标。在Steve Loughran文章中,尤其强调了这一点,他还指出,由于驱动器速度显著不同,RAID-0读取速度往往取决于阵列中最慢的一块磁盘。很多时候,RAID-0配置读取速度甚至会比non-RAID更慢。更大的问题是可靠性。如果一组磁盘被配置为RAID-0阵列,一旦一个磁盘出现故障,将使得整组都宕机。如果所有磁盘都在一个节点中,那么势必会影响整个节点的数据都出现问题。所以,如果配置多个RAID-0阵列,那么单故障发生时,整体系统出问题的概率得到了无限放大

三、Hadoop:定义指导给出的建议

    在Hadoop集群中,有一个建议:在配置时,将每个磁盘都分开。有人形象地将之称为“JBOD(Just a Box of Disks)

    《Hadoop:The.Definitive.Guide》Chapter 9: Setting Up a Hadoop Cluster中,阐述了hadoop为什么不用raid, 及namenode,datanode应该使用的磁盘配置方式。原文如下:

转载于:https://my.oschina.net/cloudcoder/blog/210705

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值