AvatarNode集群测试(五)- - - - 系统测试
AvatarNode的失效切换(写文件)测试
1. 启动虚拟机集群
2. 启动Ucarp
3. 挂在NFS
4. 格式化HDFS
5. 启动HDFS
----------------------------------------------------------------
这些都是之前的工作,没有问题了
----------------------------------------------------------------
6. 准备测试脚本
从《高可用性的HDFS》附录光盘中copy出我们需要的四个文件,分别是
test04_IO ---可执行脚本,用来远程调用AvatarDataNode1和AvatarDataNode2上的脚本write_to_hdfs
read_form_hdfs_IP ---读文件测试脚本,这里不用
write_to_hdfs ---写文件测试脚本,在本地磁盘/tmp/目录下建立test.iso文件copy到HDFS上的/tmp/(本机IP)目录下
makefile --- 负责建立/tmp/test.iso
其中在test04_IO和write_to_hdfs里面,需要修改目的IP地址,和hadoop的存放目录,否则找不到远程执行程序
这四个文件都放在/usr/hadoop/hadoop-0.20.3-dev/bin目录下
7.在AvatarDataNode1和AvatarDataNode2两个节点上copy 80 个 10m的文件到HDFS上
$ /usr/hadoop/hadoop-0.20.3-dev/bin/test04_IO.sh 80 2000000 10 write
四个脚本参数分别代表:
80 --文件个数
20000000 --文件大小
10 ---文件传输间隔
write ---是读还是写
8.本次copy结束后,删除这些文件
$ /usr/hadoop/hadoop-0.20.3-dev/bin/hadoop -rm -skipTrash /tmp/192.168.0.*/*
9. 在NFS服务器上执行远程copy命令
因为我们需要宕掉AvatarNode,因此不能在AvatarNode上执行
务必确保NFS和AvatarDataNode1、AvatarDataNode2的SSH保持通畅
$ /usr/hadoop/hadoop-0.20.3-dev/bin/test04_IO.sh 80 2000000 10 write
10. AvatarNode宕掉,StandbyNode上位
① 在宕掉AvatarNode之前,先查看一下当前的primary,可以看到虚拟IP是当前的主节点
② 宕掉AvatarNode后,传输出现异常
看一看到,NameNode is in safe mode,说明Ucarp虚拟IP已经切换到了StandbyNode,但是当前Standby节点还没有切换为Primary出于保护模式,拒绝了写请求
③ 将StandbyNode切换成为primary node
整个切换过程根据文件传输的状态,丢失了10个文件,大约100s的时间
11. 检查文件传输状态
可以看到,当前原AvatarNode已经不在,而StandbyNode可以连接查看
12. 最终的传输结果
可以看到,10045这个文件的大小为0,因为在传输这个文件的时候主机宕掉,因此传输失败
并且,10046~10057之间的文件都没有写入,因为此时StandbyNode处于保护模式,没有接管Primary的工作