hadoop2.x HA环境搭建

需要角色进程:nameNode(2个,一个active,一个standby);dataNode(3个),zookeeper(3个),zkfc(健康检查和自动故障转移需要的进程,2个,和两个nameNode在一起),JNN(3个,日志节点,用来同步两个nameNode)。

1.前置准备:java环境,hadoop下载,环境变量配置,nameNode节点向其他节点的免密钥登录(两个nameNode节点需互相免密钥登录,从namenode节点最好也向其余节点免密钥登录,这样也可以在从节点执行start-dfs.sh等命令),详见hadoop1.x伪分布式环境搭建。

2.配置hdfs-site.xml(之前配置的secondaryNamenode就不需要了):

dfs.replication

2

  dfs.nameservices

  mycluster

  dfs.ha.namenodes.mycluster

  n1,n2

  dfs.namenode.rpc-address.mycluster.n1

  wang-108:8020

  dfs.namenode.rpc-address.mycluster.n2

  wang-109:8020

  dfs.namenode.http-address.mycluster.n1

  wang-108:50070

  dfs.namenode.http-address.mycluster.n2

  wang-109:50070

  dfs.namenode.shared.edits.dir

  qjournal://wang-108:8485;wang-109:8485;wang-208:8485/mycluster

  dfs.journalnode.edits.dir

  /var/sxt/hadoop/ha/jn

  dfs.client.failover.proxy.provider.mycluster

  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

  dfs.ha.fencing.methods

  sshfence

  dfs.ha.fencing.ssh.private-key-files

  /root/.ssh/id_dsa

  dfs.ha.automatic-failover.enabled

  true

3.配置core-site.xml:

fs.defaultFS

hdfs://mycluster

hadoop.tmp.dir

/var/sxt/hadoop/ha

  ha.zookeeper.quorum

  wang-109:2181,wang-208:2181,wang-209:2181

4.配置zookeeper(至少需要在3个节点安装),下载,解压,进入conf,使用zoo-sample.cfg模板,mv zoo-sample.cfg zoo.cfg,设置data目录dataDir=/var/sxt/zk,然后在末尾添加server.1=node01:2888:3888和server.2=node02:2888:3888和server.3=node03:2888:3888, 然后在dataDir目录下添加myid文件,内容为当前节点对于的id号(node01为1),然后将zookeeper分发至其余两个节点(scp -r zookeeper-3.4.10 node02:`pwd`/),在三个节点配置zookeeper的环境变量,最后启动zookeeper(zkServer.sh start),可使用zkServer.sh status查看状态,一起启动的话,id号最大的为leader,其它为follwer

5.在三个节点启动journalnode,hadoop-daemon.sh start journalnode

6.在主节点格式化hdfs(hdfs namenode -format)

7.在主节点启动namenode(hadoop-daemon.sh start namenode),然后在从节点执行hdfs namenode -bootstrapStandby(同步主节点刚刚格式化的信息)

8.在主节点初始化zk( hdfs zkfc -formatZK ),此时在有zookeeper的节点上执行zkCli.sh连入查看节点,在zk中会多一个节点/hadoop-ha/mycluster,就是在hdfs-site.xml配置的namenode集群的名称

9.在主节点启动hdfs,start-dfs.sh

测试:在浏览器查看node01:50070,会发现主和从节点皆可访问,一个active,一个standBy(从节点不能访问文件目录),此时可尝试停掉主节点的namenode(hadoop-daemon.sh stop namenode),然后发现从自动变为了主(在zookeeper中看也会发现相关信息变更为了从节点)

关闭集群:在主节点执行 stop-dfs.sh;再次启动:start-dfs.sh

你可能感兴趣的:(hadoop2.x HA环境搭建)