利用zookeeper来实现namanode的高可用(HA)(第二篇)

利用zookeeper来实现namanode的高可用(HA)(第二篇,接上篇)

 

 

机器设备:为了叙述方面 采用nodeX的形式来表示主机名

192.168.159.31(node1)                Namenode

 

192.168.159.32(node2) zookeeper      Datanode     JN(JournalNode)

  

192.168.159.33(node3) zookeeper      Datanode     JN

 

192.168.159.34(node4) zookeeper      Datanode     JN

 

192.168.159.35(node5)                Namenode

 

第一步:

1:zookeeper环境已经搭好,并启动

2:hadoop在.bash_profile已经配置好

3:hadoop-env.sh JAVA_HOME已经配置好

 

第二步:

 

node1可以免密登录到node2,node3,node4,node5;

node5可以免密登录到node1

 

具体怎么做我不做解释,很简单的

 

第三步:

 

在node1上配置hadoop然后 scp到其他主机上即可 

 

vim hdfs-site.xml  (汉字不要复制)

 

<property>

<name>dfs.nameservices</name>  #集群名字 唯一标识

<value>mycluster</value>

</property>

 

<property>

<name>dfs.ha.namenodes.mycluster</name>  #namenode 两个

<value>nn1,nn2</value>

</property>

 

<property>

<name>dfs.namenode.rpc-address.mycluster.nn1</name> #第一个namenode在哪

<value>node1:8020</value>

</property>

<property>

<name>dfs.namenode.rpc-address.mycluster.nn2</name>  #第二个namenode在哪

<value>node5:8020</value>

</property>

 

<property>

<name>dfs.namenode.http-address.mycluster.nn1</name>  #页面访问 第一个namenode

<value>node1:50070</value>

</property>

<property>

<name>dfs.namenode.http-address.mycluster.nn2</name>  #页面访问 第二个namenode

<value>node5:50070</value>

</property>

 

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://node2;node3;node4/mycluster</value>  #JN在哪几台主机上

</property>

 

<property>

<name>dfs.client.failover.proxy.provider.mycluster</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.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

 

 

第四步:

 

vim core-site.xml

 

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/hadoop</value>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://mycluster</value>

</property>

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/opt/JN</value>

</property>

<property>

<name>ha.zookeeper.quorum</name>

<value>node2:2181,node3:2181,node4:2181</value>  #zookeeper部署在哪几台主机

</property>

 

 

 

 

第五步:

 

把node1上配置好的hadoop scp到node2...node5上

 

第六步:

 

在node2,node3,node4上执行: (这是第一次运行环境的时候需要,为hdfs namenode -format做准备)

 

hadoop-daemon.sh start journalnode

 

第七步:

 

在任意一个namenode节点上运行.比如在node1上

 

hdfs namenode -format

 

成功之后执行

 

hadoop-daemon.sh start namenode 启动节点

 

在node5上执行

 

hdfs namenode -bootstrapStandby

 

然后在node5上启动namenode

 

hadoop-daemon.sh start namenode 启动节点

 

第七步的作用是:首先在一个节点上格式化namenode,然后把元数据fsimage复制到另一个namenode节点上

 

最后:

 

在node1上执行: stop-dfs.sh

 

全面启动:stop-dfs.sh 

 

 

验证:

 

1:利用jps检验是否成功:

 

node1,node5

 

7512 DFSZKFailoverController

7745 Jps

7626 NameNode

 

node2,node3,node4

 

3165 Jps

2931 QuorumPeerMain (zookeeper进程)

3068 JournalNode   (JN进程)

2983 DataNode

 

2:页面验证

 

192.168.159.31:50070

192.168.159.35:50070

 

这两个中一个是active,另一个是standby

 

然后把active的进程kill掉,就可以看到原先是standby的变为了active了

 

 

 

这样就表示成功啦.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值