Hadoop冗余机制实验验证

Hadoop冗余机制实验验证

1 目的

Hadoop视硬件错误为常态,并通过块的冗余存储机制保证数据的高可靠性。在大多数情况下,副本系数是3HDFS的存放策略是将一个副本存放在本地机架的节点上,一个副本放在同一机架的另一个节点上,最后一个副本放在不同机架的节点上。

我们将通过实验验证Hadoop的数据高可靠性。

2 概述

实验通过对1GB的数据进行排序,分别设置副本系数为13来进行对比验证,在运行排序过程中,人为的关闭一个节点使之失效,来验证作业是否可以正常成功完成。

实验环境为:4个节点的Hadoop集群进行测试。

3 实验验证

3.1 副本系数为1的验证

设置副本系数为1,也就是说存放在HDFS中的文件每个块值存储一次,当块损坏时将无法正常读取数据。

使用Hadooporg.apache.hadoop.examples.terasort下的TeraGen类来生成100000001GB记录数据,命令如下:

hadoop jar hadoop/hadoop-*-examples.jar teragen  10000000 terasort/input-GB001

生成后进行排序的命令为:

bin/hadoop jar hadoop-0.20.2-examples.jar terasort  \

terasort/input-GB001 terasort/output-GB001

正常情况下:

运行完的截图如下:


   通过WEB接口可以看到运行时并无失效节点和异常,截图如下:

节点失效情况下

然后认为的将一个节点关机,发现出现两个读取错误,如下图:


通过WEB接口也可以发现有两个警告和一个死亡节点,截图如下:


通过这个实验,我们发现当设置副本系数为1是,Hadoop集群的数据没有进行冗余备份,当出现某个节点失效时,便会出现异常,致使提交的作业无法正常完成。

3.2 副本系数为3的验证

设置副本系数为3,也就是每个文件的分块块都有三个复制备份,当某些数据块出错时,HDFS可以通过复制完整的副本来产生一个新的,来治愈那些出错的数据块,使得数据块的副本恢复到预期设定的数量来保证数据的高可靠性,一个因损坏或者机器故障而丢失的块会从其他候选地点来复制来正常运行的机器上。

同样产生排序所需数据然后运行排序作业,然后我们通过WEB接口也可以发现文件的属性,如下图:


可以看到复制因子为3,块的大小为64M

运行时人为的关闭一个机器,仍然正常运行,并成功完成排序任务:


作业正常完成,并无异常,截图如下:

4 总结

通过实验验,我们验证了Hadoop的冗余复制机制,这种机制保证了存放在HDFS中的数据的高可靠性和数据的完整一致性。


注意:截图没有显示,可以在百度文库中找到到此篇文章,或者发我邮件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值