博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop之为何不使用RAID?
阅读量:4462 次
发布时间:2019-06-08

本文共 843 字,大约阅读时间需要 2 分钟。

一、引言:

  在一次和同事的讨论中遇到一个这样的问题:有一个hadoop集群,在hbase的put数据出现瓶颈,他们想要把datanode上的磁盘做成RAID 0(比如10块磁盘做成一个RAID 0),我当时就说这样的做法不太好,但是没有给出充足的理由不好反驳,只是说官方建议每块磁盘做成单独的RAID 0.今天有机会看到《Hadoop 指南》上正好有一块写到hadoop使用RAID的问题。

二、为何不使用RAID?

  尽管建议采用RAID(Redundant Array of Independent Disk,即磁盘阵列)作为namenode的存储器以保护元数据,但是若将RAID作为datanode的存储设备则不会给HDFS带来益处。HDFS所提供的节点间数据复制技术已可满足数据备份需求,无需使用RAID的冗余机制。

  此外,尽管RAID条带化技术(RAID 0)被广泛用户提升性能,但是其速度仍然比用在HDFS里的JBOD(Just a Bunch Of Disks)配置慢。JBOD在所有磁盘之间循环调度HDFS块。RAID 0的读写操作受限于磁盘阵列中最慢盘片的速度,而JBOD的磁盘操作均独立,因而平均读写速度高于最慢盘片的读写速度。需要强调的是,各个磁盘的性能在实际使用中总存在相当大的差异,即使对于相同型号的磁盘。针对某一雅虎集群的评测报告(http://markmail.org/message/xmzc45zi25htr7ry)表明,在一个测试(Gridmix)中,JBOD比RAID 0 快10%;在另一测试(HDFS写吞吐量)中,JBOD比RAID 0 快30%。

  最后,若JBOD配置的某一磁盘出现故障,HDFS可以忽略该磁盘,继续工作。而RAID的某一盘片故障会导致整个磁盘阵列不可用,进而使相应节点失效。

  更多技术细节可以查看:

转载于:https://www.cnblogs.com/Richardzhu/p/5315064.html

你可能感兴趣的文章
AngularJS:参考手册
查看>>
Mac下nodeJS初体验
查看>>
Yii 时间日期组件与composer 下载中出现的问题
查看>>
Swoole 源码分析——Server模块之TaskWorker事件循环
查看>>
T4学习资料
查看>>
深入了解java虚拟机(JVM) 第九章 class文件结构及意义
查看>>
VC++ 产生GUID或UUID
查看>>
Mysql 数据库安装与配置详解
查看>>
varnish pipe 和pass的区别分析
查看>>
python装饰器
查看>>
软工网络15团队作业2——团队计划
查看>>
对象的解构赋值
查看>>
javaWEB小练习:在数据库中查找相同的username和password
查看>>
Java注解
查看>>
poj 1326
查看>>
2017年校招全国统一模拟笔试(第五场)编程题集合
查看>>
vue 动态添加对象属性
查看>>
数据库MySQL
查看>>
Hat's Fibonacci
查看>>
(转)Spring Boot中使用AOP统一处理Web请求日志
查看>>