hadoop没有slaves(Hadoop为什么没有采用RAID?)
HDFS集群没有采用RAID(冗余磁盘阵列)作为datanodes的存储设备(尽管namenode使用RAID来保护元数据不会丢失) 。由于HDFS是采用在节点之间块复制的方法 ,所以RAID提供的冗余机制对HDFS来说是多余的 。
此外 ,RAID条带(RAID 0)常用于增加性能,但却比HDFS中用到的JBOD(Just a Bunch Of Disks)要慢 ,而且JBOD在所有的磁盘之间对HDFS块进行时间片的轮转 。具体说 ,RAID 0读写操作受限于冗余磁盘阵列中最慢的那个磁盘的速度 。在JBOD中 ,磁盘的操作是独立的 ,所以读写操作的平均速度要大于最慢磁盘的速度 。实际应用中 ,磁盘性能多是可以改变的 ,即使是同一型号的磁盘 。在Yahoo Hadoop Cluster的Benchmark中 ,测试Gridmix显示JBOD要比RAID 0快10% ,另一个测试显示快30%(这里的测试指的是HDFS的写能力 。
最后 ,当一个JBOD配置中的一个磁盘失效,HDFS可以继续操作;但是在RAID中 ,一个磁盘的失效将会导致整个阵列(节点也一样)变得不再可用 。
翻译自:OReilly Hadoop 《The Definitive Guide》June 2009
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!