{"id":228,"date":"2018-03-13T09:37:57","date_gmt":"2018-03-13T01:37:57","guid":{"rendered":"http:\/\/www.max-shu.com\/blog\/?p=228"},"modified":"2018-03-13T09:37:57","modified_gmt":"2018-03-13T01:37:57","slug":"%e4%bd%bf%e7%94%a8heartbeat%e3%80%81pacemaker%e3%80%81drbd%e5%ae%9e%e7%8e%b0hadoop%e7%9a%84namenode%e7%83%ad%e5%a4%87%e4%bb%bdha","status":"publish","type":"post","link":"http:\/\/www.max-shu.com\/blog\/?p=228","title":{"rendered":"\u4f7f\u7528heartbeat\u3001PaceMaker\u3001drbd\u5b9e\u73b0hadoop\u7684namenode\u70ed\u5907\u4efdHA"},"content":{"rendered":"<p>\u4f7f\u7528heartbeat\u3001PaceMaker\u3001drbd\u5b9e\u73b0hadoop\u7684namenode\u70ed\u5907\u4efdHA<\/p>\n<div><\/div>\n<div><\/div>\n<div>hadoop namenode\u4e3b\u8282\u70b9\u7684HA\u5b9e\u73b0\uff1a<br \/>\n<b>\u7f3a\u70b9\uff1a\u65e0\u6cd5\u505a\u5230\u5b8c\u5168\u65e0\u7f1d\u5207\u6362\uff0c\u5207\u6362\u8fc7\u7a0b\u4e2d\u6709\u4e00\u5c0f\u6bb5\u65f6\u95f4\u6ca1\u6cd5\u63d0\u4f9b\u670d\u52a1\uff0c\u4e0d\u8d85\u8fc730\u79d2\uff0c\u8fd8\u53ef\u4ee5\u6539\u7684\u66f4\u77ed\u3002<\/b><\/div>\n<div><\/div>\n<div><b>\u73af\u5883\uff1a<\/b><\/div>\n<div># vi \/etc\/hosts<\/div>\n<div>10.24.1.47\u00a0\u00a0\u00a0\u00a0\u00a0 nd7-rack2-cloud<br \/>\n10.24.1.48\u00a0\u00a0\u00a0\u00a0\u00a0 nd8-rack2-cloud<br \/>\n10.24.1.49\u00a0\u00a0\u00a0\u00a0\u00a0 nd9-rack2-cloud<br \/>\n10.24.1.7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 nd-rack2-cloud<\/div>\n<div>\u5176\u4e2d10.24.1.47\u548c10.24.1.48\u4e3ahadoop\u4e3b\u8282\u70b9\u7684\u4e24\u53f0HA\u673a\u5668\uff0c\u8fd0\u884c\u7740namenode, secondarynamenode, jobtracker\u8fdb\u7a0b\uff1b10.24.1.7\u4e3a\u4ed6\u4eec\u7684\u5171\u540c\u865a\u62dfip\uff0c\u4e3a\u4ece\u8282\u70b9\u548cclient\u8282\u70b9\u63d0\u4f9b\u670d\u52a1\uff1b10.24.149\u4e3a\u4ece\u8282\u70b9\uff0c\u8fd0\u884c\u8fd9datanode\u8ddftasktracker\u8fdb\u7a0b\u3002<\/div>\n<div>\u8fd0\u884cHadoop\u7684\u7528\u6237\u540d\u4e3ahha\uff0c\u8def\u5f84\u4e3a\/home\/hha\/hadoop\u3002<\/div>\n<div><\/div>\n<div>\n<b>1. \u5148\u5b89\u88c5\u597dhadoop\uff0c\u6b64\u5904\u7565\uff1b\u63a5\u7740\u5b89\u88c5\u597dheartbeat\u548cPaceMaker\uff0c\u6b64\u5904\u7565\u3002\u914d\u7f6e\uff1a<\/b><\/div>\n<div><b># vi &#8230;\/hadoop\/conf\/core-site.xml<\/b><\/div>\n<div><b>\u6ce8\u610f\u8fd9\u4e9b\u914d\u7f6e\u6587\u4ef6\u91cc\u9762\u7684nd-rack2-cloud\u4e3aHA\u8282\u70b9\u7684VIP\u3002<\/b><\/div>\n<div><b>&#8230;<\/b><\/div>\n<div>&lt;property&gt;<br \/>\n&lt;name&gt;fs.default.name&lt;\/name&gt;<br \/>\n&lt;value&gt;hdfs:\/\/<span style=\"color: #ff0000;\">nd-rack2-cloud<\/span>:9000&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property&gt;<\/div>\n<div>&#8230;<\/div>\n<div><b>\u00a0<\/b><\/div>\n<div><b># vi\u00a0hdfs-site.xml<\/b><\/div>\n<div><b>\u6ce8\u610f\/mnt\/drbd_sim\u4e3adrbd\u6240\u7ba1\u7406\u7684\u5206\u533a\uff0c\u5f53\u7136\u8fd8\u53ef\u4ee5\u5728\u522b\u7684\u5206\u533a\u5907\u4efd\uff08\u8fd9\u91cc\u662f\/data1\/hha\/hdfs\/\uff09\u3002<\/b><\/div>\n<div>&#8230;<\/div>\n<div>&lt;property&gt;<br \/>\n&lt;name&gt;dfs.name.dir&lt;\/name&gt;<br \/>\n&lt;value&gt;<span style=\"color: #9c004c;\">\/data1\/hha\/hdfs\/name<\/span>,<span style=\"color: #ff0000;\">\/mnt\/drbd_sim\/hdfs\/<\/span>name&lt;\/value&gt;<\/div>\n<div>&lt;\/property&gt;<\/p>\n<\/div>\n<div>&lt;property&gt;<br \/>\n&lt;name&gt;fs.checkpoint.dir&lt;\/name&gt;<br \/>\n&lt;value&gt;<span style=\"color: #9c004c;\">\/data1\/hha\/hdfs\/namesecondary<\/span>,<span style=\"color: #ff0000;\">\/mnt\/drbd_sim\/hdfs\/namesecondary<\/span>&lt;\/value&gt;<\/div>\n<div>\u00a0 &lt;description&gt;Determines where on the local filesystem the DFS secondary<br \/>\nname node should store the temporary images to merge.<br \/>\nIf this is a comma-delimited list of directories then the image is<br \/>\nreplicated in all of the directories for redundancy.<br \/>\n&lt;\/description&gt;<br \/>\n&lt;\/property&gt;\n<\/div>\n<div>&lt;property&gt;<br \/>\n&lt;name&gt;dfs.data.dir&lt;\/name&gt;<br \/>\n&lt;value&gt;\/data0\/hha\/hdfs\/data&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<\/div>\n<div>&#8230;<\/div>\n<div><\/div>\n<div><b># vi\u00a0mapred-site.xml<\/b><\/div>\n<div>&#8230;<\/div>\n<div>&lt;property&gt;<br \/>\n&lt;name&gt;mapred.local.dir&lt;\/name&gt;<br \/>\n&lt;value&gt;<span style=\"color: #ff0000;\">\/mnt\/drbd_sim\/mapreduce<\/span>&lt;\/value&gt;<\/div>\n<div>&lt;\/property&gt;<\/div>\n<div>&#8230;<\/div>\n<div><\/div>\n<div><b># vi \/etc\/ha.d\/ha.cf<\/b><\/div>\n<div>debugfile \/var\/log\/ha-debug<\/div>\n<div>crm respawn<\/div>\n<div>logfile \/var\/log\/ha-log<\/div>\n<div>logfacility\u00a0\u00a0\u00a0\u00a0 local0<\/div>\n<div>keepalive 2<\/div>\n<div>deadtime 30<\/div>\n<div>warntime 10<\/div>\n<div>initdead 120<\/div>\n<div>mcast bond0 225.0.0.1 694 1 0<\/div>\n<div>auto_failback on<\/div>\n<div>node\u00a0\u00a0\u00a0 nd7-rack2-cloud<br \/>\nnode\u00a0\u00a0\u00a0 nd8-rack2-cloud<\/div>\n<div><\/div>\n<div><b># vi \/etc\/ha.d\/authkeys<\/b><\/div>\n<div>auth 1<br \/>\n1 crc<\/div>\n<div><\/div>\n<div><b># crm configure edit<\/b><\/div>\n<p>node $id=&#8221;38a09183-9fc0-4ca6-8f81-349d94930261&#8243; nd8-rack2-cloud \\<br \/>\nattributes standby=&#8221;off&#8221;<br \/>\nnode $id=&#8221;560cc9af-2fd7-4af3-ab51-d221f95d80f8&#8243; nd7-rack2-cloud \\<br \/>\nattributes standby=&#8221;off&#8221;<br \/>\n<span style=\"color: #41007d;\">primitive drbd lsb:<\/span><span style=\"color: #ff0000;\">hadoop_name_dir_copy<\/span>\u00a0<span style=\"color: #41007d;\">\\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op monitor interval=&#8221;10s&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">primitive failover-ip ocf:heartbeat:IPaddr \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 params<\/span>\u00a0<span style=\"color: #9c004c;\">ip=&#8221;10.24.1.7&#8243; nic=&#8221;bond0&#8243; cidr_netmask=&#8221;255.255.255.0&#8243;<\/span>\u00a0<span style=\"color: #41007d;\">\\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op monitor interval=&#8221;10s&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">primitive hadoop_jobtracker lsb:<\/span><span style=\"color: #ff0000;\">hadoop_jobtracker<\/span>\u00a0<span style=\"color: #41007d;\">\\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op monitor interval=&#8221;10s&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">primitive hadoop_namenode lsb:<\/span><span style=\"color: #ff0000;\">hadoop_namenode<\/span>\u00a0<span style=\"color: #41007d;\">\\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op monitor interval=&#8221;10s&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">primitive hadoop_secondarynamenode lsb:<\/span><span style=\"color: #ff0000;\">hadoop_secondarynamenode<\/span>\u00a0<span style=\"color: #41007d;\">\\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op monitor interval=&#8221;10s&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">primitive ping ocf:pacemaker:ping \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 params host_list=&#8221;10.24.1.1&#8243; multiplier=&#8221;100&#8243; \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op monitor interval=&#8221;15s&#8221; timeout=&#8221;60s&#8221; \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op start interval=&#8221;0&#8243; timeout=&#8221;90s&#8221; \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 op stop interval=&#8221;0&#8243; timeout=&#8221;100s&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">group<\/span>\u00a0<span style=\"color: #9c004c;\">hadoop<\/span>\u00a0<span style=\"color: #41007d;\">failover-ip drbd hadoop_namenode hadoop_secondarynamenode hadoop_jobtracker<\/span><br \/>\n<span style=\"color: #41007d;\">clone clone_ping ping \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 meta globally-unique=&#8221;false&#8221;<\/span><br \/>\n<span style=\"color: #41007d;\">location location_hadoop hadoop \\<\/span><br \/>\n<span style=\"color: #41007d;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 rule $id=&#8221;location_hadoop-rule&#8221; -inf: not_defined pingd or pingd lte 0<\/span><br \/>\n<span style=\"color: #41007d;\">location location_hadoop_prior hadoop 100: nd7-rack2-cloud<\/span><br \/>\nproperty $id=&#8221;cib-bootstrap-options&#8221; \\<br \/>\ndc-version=&#8221;1.1.5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f&#8221; \\<br \/>\ncluster-infrastructure=&#8221;Heartbeat&#8221; \\<br \/>\nno-quorum-policy=&#8221;ignore&#8221; \\<br \/>\nstart-failure-is-fatal=&#8221;false&#8221; \\<br \/>\nstonith-enabled=&#8221;false&#8221;<br \/>\n<span style=\"color: #41007d;\">rsc_defaults $id=&#8221;rsc-options&#8221; \\<\/span><\/p>\n<div><span style=\"color: #41007d;\">\u00a0 \u00a0 \u00a0 \u00a0 resource-stickiness=&#8221;100&#8243;\u00a0<\/span><\/p>\n<p><b>2. \u5b9e\u73b0\u4e09\u4e2ahadoop\u8fdb\u7a0b\u53ca\u4e00\u4e2a\u62f7\u8d1d\u6570\u636e\u7684\u670d\u52a1\u578bLSB\u811a\u672c\uff0c\u8fd9\u4e9b\u811a\u672c\u8fd8\u4e0d\u901a\u7528\uff0c\u6362\u4e00\u4e2a\u7cfb\u7edf\u5219\u90fd\u9700\u8981\u4fee\u6539\uff1a<\/b><br \/>\n# ll \/etc\/init.d\/<br \/>\n&#8230;<br \/>\nhadoop_jobtracker<br \/>\nhadoop_namenode<br \/>\nhadoop_secondarynamenode<br \/>\nhadoop_name_dir_copy<br \/>\n&#8230;<\/p>\n<\/div>\n<div># chmod +x \/etc\/init.d\/hadoop_*<\/div>\n<div><b># vi\u00a0hadoop_name_dir_copy<\/b><\/div>\n<div>#!\/bin\/bash<br \/>\n######################################################################<br \/>\nRETVAL=0<br \/>\n# Source function library.<br \/>\n. \/etc\/rc.d\/init.d\/functions<br \/>\n# Source networking configuration.<br \/>\n[ -f \/etc\/sysconfig\/network ] &amp;&amp; . \/etc\/sysconfig\/network<br \/>\n######################################################################<br \/>\n# See how we were called.<br \/>\ncase &#8220;$1&#8221; in<br \/>\nstart)<br \/>\nsu &#8211; root -c &#8220;\/sbin\/drbdadm primary all&#8221;<br \/>\nsu &#8211; root -c &#8220;mount \/dev\/drbd0 \/mnt\/drbd_sim&#8221;<br \/>\nsu &#8211; root -c &#8220;sleep 1&#8221;<br \/>\nsu &#8211; root -c &#8220;nohup \/sbin\/drbd_connect.sh &gt;\/dev\/null 2&gt;&amp;1 &amp;&#8221;<br \/>\nsu &#8211; root -c &#8220;chmod -R 777 \/mnt\/drbd_sim\/&#8221;<br \/>\nsu &#8211; hha -c &#8220;mkdir -p \/data1\/hha\/hdfs\/name&#8221;<br \/>\nsu &#8211; hha -c &#8220;\\cp -rf \/mnt\/drbd_sim\/* \/data1\/hha\/hdfs\/name\/&#8221;<br \/>\necho $'&#8221;Start&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstop)<br \/>\nsu &#8211; root -c &#8220;sleep 2&#8221;<br \/>\nsu &#8211; root -c &#8220;umount \/mnt\/drbd_sim&#8221;<br \/>\nsu &#8211; root -c &#8220;sleep 1&#8221;<br \/>\nsu &#8211; root -c &#8220;\/sbin\/drbdadm disconnect all&#8221;<br \/>\nsu &#8211; root -c &#8220;\/sbin\/drbdadm secondary all&#8221;<br \/>\nsu &#8211; root -c &#8220;\/sbin\/drbdadm &#8212; &#8211;discard-my-data connect all&#8221;<br \/>\n### &#8220;drbdadm connect all&#8221;\u00a0 until &#8220;drbdadm cstate all&#8221; return Connected<br \/>\nsu &#8211; root -c &#8220;nohup \/sbin\/drbd_connect.sh &gt;\/dev\/null 2&gt;&amp;1 &amp;&#8221;<br \/>\necho $'&#8221;Stop&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nreload)<br \/>\necho $'&#8221;reload&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nrestart)<br \/>\necho $'&#8221;restart&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstatus)<br \/>\necho $'&#8221;status&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart|reload|status|help}&#8221;<br \/>\nexit 1<br \/>\nesac<br \/>\nexit $RETVAL<br \/>\n######################################################################<\/div>\n<div><\/div>\n<div><b># vi\u00a0hadoop_namenode<\/b><\/div>\n<div>#!\/bin\/bash<br \/>\n######################################################################<br \/>\nRETVAL=0<br \/>\n# Source function library.<br \/>\n. \/etc\/rc.d\/init.d\/functions<br \/>\n# Source networking configuration.<br \/>\n[ -f \/etc\/sysconfig\/network ] &amp;&amp; . \/etc\/sysconfig\/network<br \/>\n######################################################################<br \/>\n# See how we were called.<br \/>\ncase &#8220;$1&#8221; in<br \/>\nstart)<br \/>\nsu &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/hadoop-daemon.sh start namenode&#8221;<br \/>\necho $'&#8221;Start&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstop)<br \/>\nsu &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/hadoop-daemon.sh stop namenode&#8221;<br \/>\necho $'&#8221;Stop&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nreload)<br \/>\necho $'&#8221;reload&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nrestart)<br \/>\necho $'&#8221;restart&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstatus)<br \/>\necho $'&#8221;status&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart|reload|status|help}&#8221;<br \/>\nexit 1<br \/>\nesac<br \/>\nexit $RETVAL<br \/>\n######################################################################<\/div>\n<div><\/div>\n<div><b># vi\u00a0hadoop_secondarynamenode<\/b><\/div>\n<div>#!\/bin\/bash<br \/>\n######################################################################<br \/>\nRETVAL=0<br \/>\n# Source function library.<br \/>\n. \/etc\/rc.d\/init.d\/functions<br \/>\n# Source networking configuration.<br \/>\n[ -f \/etc\/sysconfig\/network ] &amp;&amp; . \/etc\/sysconfig\/network<br \/>\n######################################################################<br \/>\n# See how we were called.<br \/>\ncase &#8220;$1&#8221; in<br \/>\nstart)<br \/>\nsu &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/hadoop-daemon.sh start secondarynamenode&#8221;<br \/>\necho $'&#8221;Start&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstop)<br \/>\nsu &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/hadoop-daemon.sh stop secondarynamenode&#8221;<br \/>\necho $'&#8221;Stop&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nreload)<br \/>\necho $'&#8221;reload&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nrestart)<br \/>\necho $'&#8221;restart&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstatus)<br \/>\necho $'&#8221;status&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart|reload|status|help}&#8221;<br \/>\nexit 1<br \/>\nesac<br \/>\nexit $RETVAL<br \/>\n######################################################################<\/div>\n<div><\/div>\n<div><b>#vi\u00a0hadoop_jobtracker<\/b><\/div>\n<div>#!\/bin\/bash<br \/>\n######################################################################<br \/>\nRETVAL=0<br \/>\n# Source function library.<br \/>\n. \/etc\/rc.d\/init.d\/functions<br \/>\n# Source networking configuration.<br \/>\n[ -f \/etc\/sysconfig\/network ] &amp;&amp; . \/etc\/sysconfig\/network<br \/>\n######################################################################<br \/>\n# See how we were called.<br \/>\ncase &#8220;$1&#8221; in<br \/>\nstart)<br \/>\nsu &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/hadoop-daemon.sh start jobtracker&#8221;<br \/>\necho $'&#8221;Start&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstop)<br \/>\nsu &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/hadoop-daemon.sh stop jobtracker&#8221;<br \/>\necho $'&#8221;Stop&#8221; command: [OK]!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nreload)<br \/>\necho $'&#8221;reload&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nrestart)<br \/>\necho $'&#8221;restart&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\nstatus)<br \/>\necho $'&#8221;status&#8221; command is not supported!&#8217;<br \/>\nRETVAL=0<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart|reload|status|help}&#8221;<br \/>\nexit 1<br \/>\nesac<br \/>\nexit $RETVAL<br \/>\n######################################################################<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>3. \u5b9e\u73b0\u4e24\u4e2a\u68c0\u67e5\u72b6\u6001\u7684\u811a\u672c<\/b><b>\uff0c\u8fd9\u4e9b\u811a\u672c\u8fd8\u4e0d\u901a\u7528\uff0c\u6362\u4e00\u4e2a\u7cfb\u7edf\u5219\u90fd\u9700\u8981\u4fee\u6539<\/b><b>\uff1a<\/b><\/div>\n<div># ll \/sbin\/*.sh<\/div>\n<div>drbd_connect.sh<\/div>\n<div>heartbeat_rc_local.sh<\/div>\n<div><\/div>\n<div><b># vi\u00a0drbd_connect.sh<\/b><\/div>\n<div>#!\/bin\/env bash<br \/>\n# nohup \/sbin\/drbd_connect.sh &gt;\/dev\/null 2&gt;&amp;1 &amp;<br \/>\nwhile [ 1 ] ;<br \/>\ndo<br \/>\ncstate=`\/sbin\/drbdadm cstate all`<br \/>\nif [ &#8220;$cstate&#8221; != &#8220;Connected&#8221; ] ;<br \/>\nthen<br \/>\n\/sbin\/drbdadm connect all<br \/>\nelse<br \/>\nexit 0<br \/>\nfi<br \/>\nsleep 3<br \/>\ndone<\/div>\n<div><\/div>\n<div><b># vi\u00a0heartbeat_rc_local.sh<\/b><\/div>\n<div>#!\/bin\/env bash<br \/>\n# add the following line to &#8220;rc.local&#8221; file:<br \/>\n# nohup \/sbin\/heartbeat_rc_local.sh 10.24.1.1 &gt;\/dev\/null 2&gt;&amp;1 &amp;<br \/>\nwhile [ 1 ] ;<br \/>\ndo<br \/>\npingRtn=`\/bin\/ping $1 -c 3 -q | grep &#8220;packet loss&#8221; | awk &#8216;{ print $6}&#8217;`<br \/>\nif [ &#8220;$pingRtn&#8221; = &#8220;100%&#8221; -o &#8220;$pingRtn&#8221; = &#8220;+3&#8221; -o &#8220;$pingRtn&#8221; = &#8220;&#8221; ] ;<br \/>\nthen<br \/>\nservice heartbeat stop<br \/>\nelse<br \/>\nservice heartbeat start<br \/>\nfi<br \/>\nsleep 10<br \/>\ndone<\/div>\n<div><\/div>\n<div><b>\u4fee\u6539\/etc\/rc.local\uff0c\u52a0\u5165\u4ee5\u4e0b\u5185\u5bb9\uff0c\u9632\u6b62heartbeat\u8fdb\u5165\u88c2\u8111\u72b6\u6001\uff0c\u53ea\u6709\u6700\u540e\u4e00\u884c\u662f\u5fc5\u987b\u7684\uff0c\u524d\u9762\u51e0\u884c\u5728\u6a21\u62df\u78c1\u76d8\u65f6\u9700\u8981\u7528\uff0c\u7528\u771f\u6b63\u5206\u533a\u65f6\u4e0d\u9700\u8981\uff1a<\/b><\/div>\n<p>dd if=\/dev\/zero of=drbd_sim bs=4k count=5000<br \/>\nlosetup \/dev\/loop0 drbd_sim<br \/>\nmkfs.ext3 -F \/dev\/loop0<br \/>\ndrbdadm detach\u00a0 r0<br \/>\ndd if=\/dev\/zero of=\/dev\/loop0<br \/>\ndrbdadm create-md r0<\/p>\n<div>drbdadm attach\u00a0 r0<\/div>\n<div><\/div>\n<div>nohup \/sbin\/heartbeat_rc_local.sh\u00a0<span style=\"color: #ff0000;\">10.24.1.1<\/span>\u00a0&gt;\/dev\/null 2&gt;&amp;1 &amp;<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>4. \u914d\u7f6e\u5206\u533a\u5b9e\u65f6\u540c\u6b65\u5de5\u5177DRBD\uff1a<\/b><br \/>\n\u5b89\u88c5\uff0c\u8fd9\u4e2adrbd\u8ddf\u5185\u6838\u5173\u7cfb\u5bc6\u5207\uff0c\u6700\u597d\u7528yum install\u5b89\u88c5\uff0c\u6216\u62f7\u8d1d\u76f8\u5e94\u5185\u6838\u7684rpm\u5305\u5b89\u88c5\uff08\u5982\uff1adrbd-8.0.16-5.el5.centos.x86_64.rpm\u548ckmod-drbd-8.0.16-5.el5_3.x86_64.rpm\uff09\uff1a<br \/>\n# yum install kmod-drbd<\/p>\n<p>\u6a21\u62df\u51fa\u5206\u533a\uff0c<span style=\"color: #ff0000;\">\u5b9e\u9645\u4e2d\u9700\u8981\u7528\u771f\u6b63\u7684\u5206\u533a\u6765\u4ee3\u66ff\uff0c\u5426\u5219\u91cd\u542f\u5c31\u6ca1\u6709\u4e86<\/span>\uff1a<br \/>\n# dd if=\/dev\/zero of=drbd_sim bs=4k count=5000<br \/>\n# losetup \/dev\/loop0 drbd_sim<br \/>\n# mkfs.ext3 -F \/dev\/loop0<br \/>\n# mkdir \/mnt\/drbd_sim<br \/>\n# mount -t ext3 \/dev\/loop0 \/mnt\/drbd_sim<br \/>\n# umount \/mnt\/drbd_sim<\/p>\n<p>\u914d\u7f6edrbd\uff0c\u8fd9\u91cc\u4e3a8.0.16\u7684\u65b9\u5f0f\uff0c\u4ee5\u540e\u7248\u672c\u7684\u914d\u7f6e\u6587\u4ef6\u5e94\u8be5\u4f1a\u6709\u53d8\u5316:<\/p><\/div>\n<div># cp \/usr\/share\/doc\/drbd-8.0.16\/drbd.conf\u00a0 \/etc\/<br \/>\n<b># vi \/etc\/drbd.conf<\/b><\/div>\n<div>&#8230;<br \/>\nresource r0 {<br \/>\nprotocol\u00a0 C;<\/div>\n<div>\u00a0 startup { wfc-timeout 3; degr-wfc-timeout 3; }<br \/>\non nd7-rack2-cloud {<br \/>\ndevice\u00a0\u00a0\u00a0 \/dev\/drbd0;<br \/>\ndisk\u00a0\u00a0\u00a0\u00a0\u00a0 \/dev\/loop0;<br \/>\nmeta-disk internal;<br \/>\naddress\u00a0\u00a0 10.24.1.47:7789;<br \/>\n}<br \/>\non nd8-rack2-cloud {<br \/>\ndevice\u00a0\u00a0\u00a0 \/dev\/drbd0;<br \/>\ndisk\u00a0\u00a0\u00a0\u00a0\u00a0 \/dev\/loop0;<br \/>\nmeta-disk internal;<br \/>\naddress\u00a0\u00a0 10.24.1.48:7789;<br \/>\n}<br \/>\n}<\/div>\n<div>\u4e24\u8fb9\u6267\u884c\uff1a<br \/>\n# dd if=\/dev\/zero of=\/dev\/loop0<br \/>\n<b># drbdadm create-md r0<\/b><br \/>\n<b># service drbd start<\/b><br \/>\n\u5728\u67d0\u4e00\u53f0\u4e0a\u6267\u884c\uff1a<br \/>\n<b># drbdsetup \/dev\/drbd0 primary -o<\/b><br \/>\n<b># cat \/proc\/drbd<\/b><br \/>\n0: cs:Connected st:Primary\/Secondary ds:UpToDate\/UpToDate C r&#8212;<br \/>\nns:19960 nr:0 dw:0 dr:19960 al:0 bm:2 lo:0 pe:0 ua:0 ap:0<br \/>\nresync: used:0\/61 hits:1246 misses:2 starving:0 dirty:0 changed:2<br \/>\nact_log: used:0\/257 hits:0 misses:0 starving:0 dirty:0 changed:0<br \/>\n<b># mkfs.ext3 -F \/dev\/drbd0<\/b><br \/>\n<b># mount -t ext3 \/dev\/drbd0 \/mnt\/drbd_sim<\/b><br \/>\n\u6bcf\u505a\u4e00\u6b21\u5207\u6362\uff0c\u90fd\u5fc5\u987b\u6267\u884c<b>drbdadm primary all<\/b>\uff0c\u5426\u5219\u53ef\u80fd\u53cc\u65b9\u90fd\u4f1a\u662fsecondary\u3002<br \/>\n<span style=\"color: #8600a4;\">\u7b2c\u4e00\u6b21\u540c\u6b65\u7684\u8fc7\u7a0b\u5f88\u6162\uff0c\u53ea\u6709350KB\/s\uff0c\u800c\u4e14\u6574\u4e2a\u76d8\u9700\u8981\u540c\u6b65\u4e00\u6b21\uff0c\u65f6\u95f4\u4f1a\u5f88\u6f2b\u957f\u3002<\/span><\/div>\n<div>\n<span style=\"color: #de5700;\">\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d&gt;&gt;<\/span><br \/>\n\u539f\u6765\u6253\u7b97\u7528NFS\uff0c\u6d4b\u8bd5\u53d1\u73b0\u884c\u4e0d\u901a\uff1a\u4e00\u65b9\u65ad\u7f51\uff0c\u53e6\u5916\u4e00\u65b9hadoop\u542f\u52a8\u4e0d\u4e86\u3002<br \/>\n\u4e00\u65b9\u914d\u7f6e\uff1a<br \/>\n# mkdir \/data-nfs<br \/>\n# chmod 777 \/data-nfs<br \/>\n# vi \/etc\/exports<br \/>\n\/data-nfs PeerIP(rw,ync,no_root_squash,anonuid=65534,anongid=65534)<br \/>\n# service nfs start<br \/>\n\u53e6\u4e00\u65b9\u914d\u7f6e\uff1a<br \/>\n# mkdir \/mnt\/hdfs-nfs<br \/>\n# mount -t nfs -o hard,intr,bg,timeo=50 PeerIP:\/data-nfs \/mnt\/hdfs-nfs<br \/>\n# vi \/etc\/fstab<br \/>\nPeerIP:\/data-nfs\u00a0\u00a0\u00a0 \/mnt\/hdfs-nfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 nfs\u00a0\u00a0\u00a0\u00a0 hard,intr,bg,timeo=50\u00a0 0 0<br \/>\n\u7136\u540e\u4ea4\u6362\u8fc7\u6765\u914d\u7f6e\u3002<br \/>\n<span style=\"color: #de5700;\">&lt;&lt;\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d\uff1d<\/span><\/p>\n<p><b>5. \u542f\u52a8\uff1a<\/b><br \/>\nMaster\u4e3b\u673a\uff1a<br \/>\n# service heartbeat start<br \/>\n# su &#8211; hha -c &#8220;\/home\/hha\/hadoop\/bin\/start-all.sh&#8221;<br \/>\n\u5fc5\u987b\u5148\u542f\u52a8heartbeat\uff08\u5c31\u540c\u65f6\u542f\u52a8\u4e86namenode\/secondarynamenode\/jobtracker\uff09\uff0c\u7136\u540e\u518d\u8fd0\u884cstart-all.sh\uff0c\u628a\u522b\u7684datanode\/tasktracker\u4e4b\u7c7b\u7684\u542f\u52a8\u3002<br \/>\n\u53e6\u4e00\u53f0\u5907\u4efd\u4e3b\u673a\uff1a<br \/>\n# service heartbeat start<br \/>\n\u4e24\u53f0\u673a\u5668\u542f\u52a8\u9700\u8981\u4e00\u70b9\u65f6\u95f4\uff0c\u4f30\u8ba1\u4e0d\u8d85\u8fc72\u5206\u949f\u3002<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>6. \u68c0\u67e5\uff1a<\/b><\/div>\n<div><b>Master\u4e3b\u673a\uff1a<\/b><\/div>\n<div># cat \/proc\/drbd<\/div>\n<div>\u770b\u5230\u5904\u4e8e\u8fde\u63a5\u72b6\u6001Connected\uff0c\u81ea\u5df1\u662fPrimary\u65b9\uff0c\u5bf9\u65b9\u662fSecondary\u65b9\uff0c\u6570\u636e\u5904\u4e8e\u66f4\u65b0\u72b6\u6001UpToDate\u3002<\/div>\n<div>version: 8.0.16 (api:86\/proto:86)<br \/>\nGIT-hash: d30881451c988619e243d6294a899139eed1183d build by mockbuild@v20z-x86-64.home.local, 2009-08-22 13:26:57<br \/>\n0: cs:<span style=\"color: #ff0000;\">Connected<\/span>\u00a0st:<span style=\"color: #ff0000;\">Primary\/Secondary<\/span>\u00a0ds:<span style=\"color: #ff0000;\">UpToDate\/UpToDate<\/span>\u00a0C r&#8212;<br \/>\nns:122 nr:0 dw:28942 dr:212787 al:5 bm:99 lo:0 pe:0 ua:0 ap:0<br \/>\nresync: used:0\/61 hits:0 misses:0 starving:0 dirty:0 changed:0<br \/>\nact_log: used:0\/257 hits:8807 misses:5 starving:0 dirty:0 changed:5<\/div>\n<div><\/div>\n<div>\n<div># df -h<\/div>\n<div>\u542b\u6709\/dev\/drbd0\u6240mount\u4e0a\u6765\u7684\u5206\u533a\/mnt\/drbd_sim\u3002<\/div>\n<div>\/dev\/drbd0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 19M\u00a0 5.5M\u00a0\u00a0 13M\u00a0 31% \/mnt\/drbd_sim<\/div>\n<div><\/div>\n<div># ll \/mnt\/drbd_sim<\/div>\n<div>\u5206\u533a\u91cc\u9762\u5df2\u7ecf\u4fdd\u5b58\u6709\u5185\u5bb9\u3002<\/div>\n<div>hdfs<\/div>\n<div>mapreduce<\/div>\n<div><\/div>\n<p># ifconfig<\/p><\/div>\n<div>\u591a\u4e86\u4e00\u4e2aVIP\uff1a10.24.1.7\u3002<\/div>\n<div>bond0:0\u00a0\u00a0 Link encap:Ethernet\u00a0 HWaddr 00:22:19:5D:48:3D<br \/>\ninet addr:10.24.1.7\u00a0 Bcast:10.24.1.255\u00a0 Mask:255.255.255.0<br \/>\nUP BROADCAST RUNNING MASTER MULTICAST\u00a0 MTU:1500\u00a0 Metric:1<\/div>\n<div><\/div>\n<div># jps<\/div>\n<div>\u53ef\u4ee5\u770b\u5230hadoop\u7684\u4e09\u4e2a\u8fdb\u7a0b\u90fd\u5df2\u7ecf\u542f\u52a8\u6b63\u5e38\uff0c\u53ef\u4ee5\u4ecehadoop web\u754c\u9762\u68c0\u67e5\u4e00\u4e0b\u3002<\/div>\n<div>25279 NameNode<br \/>\n25403 SecondaryNameNode<br \/>\n28125 Jps<br \/>\n25635 JobTracker<\/div>\n<div><\/div>\n<div># crm status<\/div>\n<div>\u770b\u5230\u53cc\u65b9\u90fd\u5728\u7ebfonline\uff0c\u670d\u52a1\u7ec4hadoop\u542f\u52a8\u5728nd8-rack2-cloud\u4e0a\uff0c\u6ce8\u610f\u5230\u987a\u5e8f\uff0c\u542f\u52a8\u65f6\u6309\u987a\u5e8f\u542f\u52a8\uff0c\u505c\u6b62\u65f6\u53cd\u8fc7\u6765\u7684\u987a\u5e8f\u505c\u6b62\uff1b\u670d\u52a1\u5668ping\u542f\u52a8\u5728\u53cc\u65b9\u4e0a\u3002<br \/>\n============<br \/>\nLast updated: Fri Nov 11 09:18:54 2011<br \/>\nStack: Heartbeat<br \/>\nCurrent DC: nd8-rack2-cloud (38a09183-9fc0-4ca6-8f81-349d94930261) &#8211; partition with quorum<br \/>\nVersion: 1.1.5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f<br \/>\n2 Nodes configured, unknown expected votes<br \/>\n2 Resources configured.<br \/>\n============<\/p>\n<p>Online: [ nd8-rack2-cloud nd7-rack2-cloud ]<\/p>\n<p>Resource Group: hadoop<br \/>\nfailover-ip\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (ocf::heartbeat:IPaddr):\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Started nd8-rack2-cloud<br \/>\ndrbd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (lsb:hadoop_name_dir_copy):\u00a0\u00a0\u00a0\u00a0 Started nd8-rack2-cloud<br \/>\nhadoop_namenode\u00a0\u00a0\u00a0 (lsb:hadoop_namenode):\u00a0 Started nd8-rack2-cloud<br \/>\nhadoop_secondarynamenode\u00a0\u00a0 (lsb:hadoop_secondarynamenode): Started nd8-rack2-cloud<br \/>\nhadoop_jobtracker\u00a0 (lsb:hadoop_jobtracker):\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Started nd8-rack2-cloud<br \/>\nClone Set: clone_ping [ping]<br \/>\nStarted: [ nd7-rack2-cloud nd8-rack2-cloud ]<\/p><\/div>\n<div><\/div>\n<div><\/div>\n<div><b>\u4ece\u4e3b\u673a\uff1a<\/b><\/div>\n<div># cat \/proc\/drbd<\/div>\n<div>version: 8.0.16 (api:86\/proto:86)<br \/>\nGIT-hash: d30881451c988619e243d6294a899139eed1183d build by mockbuild@v20z-x86-64.home.local, 2009-08-22 13:26:57<br \/>\n0: cs:<span style=\"color: #ff0000;\">Connected<\/span>\u00a0st:<span style=\"color: #ff0000;\">Secondary\/Primary<\/span>\u00a0ds:<span style=\"color: #ff0000;\">UpToDate\/UpToDate<\/span>\u00a0C r&#8212;<br \/>\nns:0 nr:177 dw:45003 dr:111904 al:5 bm:105 lo:0 pe:0 ua:0 ap:0<br \/>\nresync: used:0\/61 hits:0 misses:0 starving:0 dirty:0 changed:0<br \/>\nact_log: used:0\/127 hits:9363 misses:5 starving:0 dirty:0 changed:5<\/div>\n<div><\/div>\n<div># df -h<\/div>\n<div>&#8230;\u6ca1\u6709\/dev\/drbd0\u5206\u533a<\/div>\n<div><\/div>\n<div># ll \/mnt\/drbd_sim<\/div>\n<div>\u6ca1\u6709\u5185\u5bb9<\/div>\n<div><\/div>\n<div># ifconfig<\/div>\n<div>&#8230; \u6ca1\u6709bond0:x<\/div>\n<div><\/div>\n<div># jps<\/div>\n<div>\u6ca1\u6709hadoop\u7684\u4efb\u4f55\u8fdb\u7a0b\u3002<\/div>\n<div><\/div>\n<div># crm status<\/div>\n<div>\u663e\u793a\u8ddfMaster\u4e3b\u673a\u4e00\u81f4\u3002<\/div>\n<div><\/div>\n<div>\n<b>7. \u5207\u6362\uff1a<\/b><\/div>\n<div><b>\u624b\u5de5\u547d\u4ee4\u5207\u6362\uff1a<\/b><\/div>\n<div>Master\u4e3b\u673a\uff1a<\/div>\n<div># crm node standby \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u628a\u81ea\u5df1\u53d8\u6210standby\u72b6\u6001\uff0c\u89e6\u53d1\u5207\u6362\uff0c\u5bf9\u65b9\u53d8\u6210\u4e3b\u8282\u70b9<\/div>\n<div># crm node online \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u628a\u81ea\u5df1\u53d8\u6210online\u72b6\u6001\uff0c\u4e0d\u4f1a\u5207\u6362\u00a0\uff0c\u5bf9\u65b9\u8fd8\u662f\u4e3b\u8282\u70b9\u3002<\/div>\n<div>\u4ece\u4e3b\u673a\u4e0d\u7528\u64cd\u4f5c\u3002<\/div>\n<div>\u8be5\u8fc7\u7a0b\u5f88\u5feb\uff0c\u539fMaster\u53d8\u6210\u4e86slave\uff0c\u539fslave\u53d8\u6210\u4e86master\u3002<\/div>\n<div><\/div>\n<div><b>\u65ad\u7f51\u7edc\u670d\u52a1\u5207\u6362\uff1a<\/b><\/div>\n<div>Master\u4e3b\u673a\uff1a<\/div>\n<div># service network stop &amp;&amp; sleep 150 &amp;&amp; service network start<br \/>\n\u89e6\u53d1\u5207\u6362\u572830\u79d2\uff0c\u539fslave\u53d8\u6210\u4e86master\uff0c\u7b49\u7f51\u7edc\u8d77\u6765\u540e\uff0c\u539fMaster\u53d8\u6210\u4e86slave\u3002<\/div>\n<div><\/div>\n<div><b>\u62d4\u7f51\u7ebf\u5207\u6362\uff1a<\/b><\/div>\n<div>\u76f4\u63a5\u62d4\u6389Master\u4e3b\u673a\u7684\u7f51\u7ebf\uff0c\u53ef\u4ee5\u770b\u5230\u5207\u6362\u6210\u529f\u3002<\/div>\n<div>\u89e6\u53d1\u5207\u6362\u572830\u79d2\uff0c\u539fslave\u53d8\u6210\u4e86master\uff0c\u7b49\u7f51\u7ebf\u63d2\u56de\u53bb\u540e\uff0c\u539fMaster\u53d8\u6210\u4e86slave\u3002<\/div>\n<div><\/div>\n<div><b>\u91cd\u542f\u5207\u6362\uff1a<\/b><\/div>\n<div>Master\u4e3b\u673a\uff1a<\/div>\n<div># reboot<\/div>\n<div>\u89e6\u53d1\u5207\u6362\u572830\u79d2\uff0c\u539fslave\u53d8\u6210\u4e86master\uff0c\u7b49\u673a\u5668\u542f\u52a8\u5b8c\u6bd5\uff0c\u539fMaster\u53d8\u6210\u4e86slave\u3002<\/div>\n<div><\/div>\n<div><b>\u65ad\u7535\u5207\u6362\uff1a<\/b><\/div>\n<div>\u76f4\u63a5\u62d4\u6389Master\u4e3b\u673a\u7684\u7535\u6e90\uff08\u4e0d\u662f\u6309\u670d\u52a1\u5668\u7535\u6e90\u5f00\u5173\uff09\uff0c\u53ef\u4ee5\u770b\u5230\u5207\u6362\u6210\u529f\u3002<\/div>\n<div>\u89e6\u53d1\u5207\u6362\u572830\u79d2\uff0c\u539fslave\u53d8\u6210\u4e86master\uff0c\u7b49\u63d2\u4e0a\u7535\u6e90\uff0c\u673a\u5668\u542f\u52a8\u5b8c\u6bd5\uff0c\u539fMaster\u53d8\u6210\u4e86slave\u3002<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528heartbeat\u3001PaceMaker\u3001drbd\u5b9e\u73b0hadoop\u7684namenode\u70ed\u5907\u4efdHA hadoop &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[145,133,80,143,146,144,147],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-63","tag-drbd","tag-ha","tag-hadoop","tag-heartbeat","tag-namenode","tag-pacemaker","tag-147"],"views":1644,"_links":{"self":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=228"}],"version-history":[{"count":1,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/228\/revisions"}],"predecessor-version":[{"id":229,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/228\/revisions\/229"}],"wp:attachment":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}