格式如下:
primary-server [IPaddress[/mask/interface/broadcast]] resource1[::arg1::arg2] resource2[::arg1::arg2]
主服务拥有的资源的名字,它告诉heartbeat程序哪个机器拥有某个资源,资源名实际上是/etc/init.d目录或/etc/ha.d/resource.d目录下的一个脚本。(这个脚本的副本必须同时存在于主服务器和备用服务器上)
master 192.168.123.40 drbddisk::r0 Filesystem::/dev/drbd0::/mnt/drbd::ext3 hdfs
在备用服务器上安装Heartbeat
安装完包之后,直接在主服务器上执行下面的命令复制所有配置文件到备用服务器上:
scp -r /etc/ha.d backup:/etc/ha.d
scp命令是安全复制命令,它使用SSH协议在两个节点之间复制数据,-r选项指定scp复制主服务器上/etc/ha.d目录下的所有文件和所有子目录。
启动Heartbeat
1 在主服务器和备用服务器上把heartbeat配置为开机自动启动 chkconfig --level 35 heartbeat on
2 手工启停方法
/etc/init.d/heartbeat start 或者
service heartbeat start /etc/init.d/heartbeat stop 或者
service heartbeat stop
heartbeat自动切换测试
1)启动heartbeat
在master和backup上执行: /etc/init.d/heartbeat start
已经启动
2)在master上到ifconfig 可以看到虚拟IP已经启动
eth0:0 Link encap:Ethernet HWaddr 00:11:D8:94:C6:1C
inet addr:192.168.123.40 Bcast:192.168.188.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:177 Base address:0xc400 3)在master上停止heartbeat服务或关机 /etc/init.d/heartbeat stop
4)在backup上ifconfig 可以看到虚拟IP已经启动
eth0:0 Link encap:Ethernet HWaddr 00:11:2F:85:F9:DD
inet addr:192.168.123.40 Bcast:192.168.188.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:177 Base address:0xc400
通过haresources配置自动切换
如果不使用heartbeat的情况下,DRBD只能手工切换主从关系,现在修改heartbeat的配置文件,使DRBD可以通过heartbeat自动切换。
创建资源脚本
1 新建脚本hdfs,用于启停hdfs文件系统,内容如下: cd /etc/ha.d/resource.d vi hdfs #!/bin/sh case \start)
# Start commands go here
cd /home/bobo/hadoop-0.20.203.0/bin
msg=` su - bobo -c \logger $msg ;; stop)
# Stop commands go here
cd /home/bobo/hadoop-0.20.203.0/bin
msg=` su - bobo -c \logger $msg ;;
status)
# Status commands go here ;; esac
2 修改权限
chmod 755 /etc/ha.d/resource.d/hdfs
3 把脚本拷贝到备份机并同样修改权限
scp /etc/ha.d/resource.d/hdfs backup: /etc/ha.d/resource.d/ chmod 755 /etc/ha.d/resource.d/hdfs
配置haresources
1 修改/etc/ha.d/haresources vi /etc/ha.d/haresources
master 192.168.123.40 drbddisk::r0 Filesystem::/dev/drbd0::/mnt/drbd::ext3 hdfs
注释:
master 主服务器名 192.168.123.40 对外服务IP别名
drbddisk::r0 资源drbddisk,参数为r0
Filesystem::/dev/drbd0::/mnt/drbd::ext3 资源Filesystem,mount设备/dev/drbd0到/mnt/drbd目录,类型为ext3
hdfs hdfs文件系统资源
drbd,heartbeat,hdfs联调测试 测试1 创建文件和目录
1、41上heartbeat和drbd启动 由于41为主节点,在启动heartbeat服务后,虚拟地址192.168.123.40被配置到master上,同时挂载了drbd文件系统在/mnt/drbd。
1)执行ifconfig可以看到
eth0:0 Link encap:Ethernet HWaddr 00:11:D8:94:C6:1C
inet addr:192.168.123.40 Bcast:192.168.188.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:177 Base address:0xc400
2)在41上执行cat /proc/drbd,可以看到41和44之间同步正常,41为主节点 version: 8.3.11 (api:88/proto:86-96)
srcversion: DA5A13F16DE6553FC7CE9B2
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:84 nr:8 dw:88 dr:2058 al:2 bm:1 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
3)在44上执行cat /proc/drbd,可以看到44和41之间同步正常,44为备份节点 version: 8.3.11 (api:88/proto:86-96)
srcversion: DA5A13F16DE6553FC7CE9B2
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- ns:8 nr:84 dw:92 dr:1025 al:1 bm:1 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0 4)在41上执行df,看到drbd已挂载
/dev/drbd0 2062060 35876 1921436 2% /mnt/drbd
2、在hdfs文件系统创建目录
# 必须切换到hdfs用户才可以访问hdfs文件系统 # su bobo
cd /home/hdfs/hdfsinstall/hadoop/bin # 创建目录testdir
hadoop dfs -mkdir testdir
3、把本地文件hello拷贝到HDFS的根目录下 hadoop dfs -put ~/hadoopfile/1.file testfile
4、查看现有的文件和目录 Found 2 items
drwxr-xr-x - bobo supergroup 0 2012-03-26 01:24 /user/bobo/testdir -rw-r--r-- 1 bobo supergroup 0 2012-03-26 01:26 /user/bobo/testfile
测试2 主备节点切换
1、在41上停止heartbeat
在41上执行sudo service heartbeat stop
2、查看44
1)执行ifconfig可以看到虚拟ip已经切换到44上
eth1:0 Link encap:以太网 硬件地址 08:00:27:9a:2a:f5
inet 地址:192.168.1.40 广播:192.168.1.255 掩码:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1 2)在44上执行cat /proc/drbd,看到44切换为主节点Primary version: 8.3.11 (api:88/proto:86-96)
srcversion: DA5A13F16DE6553FC7CE9B2
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:2760 nr:1960 dw:4756 dr:3797 al:14 bm:14 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oo s:0
3)执行df,看到drbd已挂载
/dev/drbd0 2062060 35876 1921436 2% /mnt/drbd
3、在44上查看hdfs文件系统
/home/hdfs/hdfsinstall/hadoop/bin/hadoop dfs -ls 查看现有的文件和目录。显示是正常的。
-rw-r--r-- 1 hdfs supergroup 1951937 2009-01-14 17:15 /user/hdfs/hello drwxr-xr-x - hdfs supergroup 0 2009-01-13 16:44 /user/hdfs/testdir
测试3 主备节点再次切换
1、先开启41上的heartbeat,在44上停止heartbeat 在44上执行/etc/init.d/heartbeat stop
2、查看41
1)执行ifconfig可以看到虚拟ip已经切换到41上
eth0:0 Link encap:Ethernet HWaddr 00:11:D8:94:C6:1C
inet addr:192.168.123.40 Bcast:192.168.188.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:177 Base address:0xc400
2)在41上执行cat /proc/drbd,看到41切换为主节点Primary version: 8.3.11 (api:88/proto:86-96)
srcversion: DA5A13F16DE6553FC7CE9B2
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:2300 nr:2824 dw:5040 dr:4093 al:13 bm:16 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oo s:0
3)执行df,看到drbd已挂载
/dev/drbd0 30963708 185580 29205264 1% /mnt/drbd
3、在41上查看hdfs文件系统 bin/hadoop dfs -ls
查看现有的文件和目录。显示是正常的。
-rw-r--r-- 1 hdfs supergroup 1951937 2009-01-14 17:15 /user/hdfs/hello drwxr-xr-x - hdfs supergroup 0 2009-01-13 16:44 /user/hdfs/testdir
测试4 split brain自动处理
1、按照其他中描述配置split brain自动处理 上面已经配置了
2、重新启动41和44,等待几分钟后
3、查看41 cat /proc/drbd
显示Connected,表示同步正常。 version: 8.3.11 (api:88/proto:86-96)
srcversion: DA5A13F16DE6553FC7CE9B2
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:336 nr:64 dw:400 dr:765 al:7 bm:1 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
4、查看44 cat /proc/drbd
显示Connected,表示同步正常。 version: 8.3.11 (api:88/proto:86-96)
srcversion: DA5A13F16DE6553FC7CE9B2
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- ns:0 nr:336 dw:336 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库利用heartbeat和drbd实现HDFS的双机热备(3)在线全文阅读。
相关推荐: