Step 1:配置节点直接SSH无密钥登录
http://blog.youkuaiyun.com/ymf827311945/article/details/71483220
Step 2:
搭建Hadoop之HDFS—-secondary版本(并不是说搭建HA必须先搭建secondary版本),首先是为了熟悉两种搭建方式,其次是因为搭建HA版本的HDFS的时候,有很多的步骤都是重复的,所以如果对于什么也没有搭建的来说,可以先搭建一个Secondary版本的HDFS,这样搭建HA版本的时候就很简单了(其实只是配置文件属性不同而已),而且我在将这个HA版本的时候是基于secondary版本的
http://blog.youkuaiyun.com/ymf827311945/article/details/71498248
Step3:
在node11节点上执行命令:
mkdir -p /opt/apps/hadoop/hadoop-2.6.0/journalnode
vi /opt/apps/hadoop/hadoop-2.6.0/etc/hadoop/hdfs-site.xml
删除Secondary版本的属性,添加如下属性(下列的ymf可以替换成你自己的cluster名字,包括节点替换成你自己的节点,还有journalnode的路径等等吧),然后保存退出
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.ymf</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ymf.nn1</name>
<value>node11:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ymf.nn2</name>
<value>node12:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.ymf.nn1</name>
<value>node11:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.ymf.nn2</name>
<value>node12:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node11:8485;node12:8485;node13:8485/ymf</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.ymf</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/apps/hadoop/hadoop-2.6.0/journalnode</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
Step 4:
在node11节点上执行命令:
mkdir -p /opt/apps/hadoop/hadoop-2.6.0/tmp
vi /opt/apps/hadoop/hadoop-2.6.0/etc/hadoop/core-site.xml
删除Secondary版本的属性,然后在两个configuration之间添加如下属性
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/apps/hadoop/hadoop-2.6.0/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ymf</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node11:2181,node12:2181,node13:2181</value>
</property>
Step 5:
在node11节点上执行命令:
rm -rf /opt/apps/hadoop/hadoop-2.6.0/etc/hadoop/masters
Step 6:
在node11节点上执行命令:
rm -rf /opt/apps/hadoop/hadoop-2.6.0/tmp/*————-为了删除之前的文件
Step 7:
分别删除node12和node13节点上原来的文件夹,
rm -rf /opt/apps/hadoop/*
然后执行命令
scp -r /opt/apps/hadoop/hadoop-2.6.0/ node12:/opt/apps/hadoop/
Step 8:
分别在三个节点执行命令:
hadoop-daemon.sh start journalnode
Step 9:
在node11节点上执行命令:
hdfs namenode -format
Step 10:
在node11节点上执行命令:
hadoop-daemon.sh start namenode
Step 10:
在node12(另一个namenode)节点上执行命令:
hdfs namenode -bootstrapStandby——————-中途系统会提示reformat system,输入Y即可
Step 11:
在node11节点执行命令:
hadoop-daemon.sh stop namenode———————-再次停止namenode
Step 12:
分别在三台节点执行命令:
zkServer.sh start
Step 13:
在node11(namenode)节点上执行命令:
hdfs zkfc -formatZK——————格式化zookeeper
Step 14:
在node11节点上执行命令:
start-dfs.sh
Step 15:
分别在三个节点上执行命令:
jps————-查看进程
Step 16:
打开浏览器:分别输入—————-这个时候node12是活跃的节点,然后node11是备用点,如果node12节点宕机了,那么node11会自动成为active节点
http://192.168.80.11:50070
http://192.168.80.12:50070
Step 17:
在node12(active)节点上执行命令:
hadoop-daemon.sh stop namenode
Step 18:
在node12节点上执行命令:
hadoop-daemon.sh start namenode——————重新启动namenode
Step 19:
重新打开浏览器,或者刷新上面的两个网页:————你会发现node11的状态由standby变为了active,而node12节点的状态由active变为了standby,这就是借助zookeeper做到的HA版本,也就是高可用版本,当namenode的active节点宕机的时候,由副节点变为active,继续正常的工作
http://192.168.80.11:50070
http://192.168.80.12:50070
Step 20:
在node11节点上执行命令:
stop-dfs.sh————关闭HDFS