美文网首页
hadoop2.x HA环境搭建

hadoop2.x HA环境搭建

作者: 香港记者mo | 来源:发表于2019-06-17 15:09 被阅读0次

需要角色进程: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就不需要了):

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

  <name>dfs.nameservices</name>

  <value>mycluster</value>

</property>

<property>

  <name>dfs.ha.namenodes.mycluster</name>

  <value>n1,n2</value>

</property>

<property>

  <name>dfs.namenode.rpc-address.mycluster.n1</name>

  <value>wang-108:8020</value>

</property>

<property>

  <name>dfs.namenode.rpc-address.mycluster.n2</name>

  <value>wang-109:8020</value>

</property>

<property>

  <name>dfs.namenode.http-address.mycluster.n1</name>

  <value>wang-108:50070</value>

</property>

<property>

  <name>dfs.namenode.http-address.mycluster.n2</name>

  <value>wang-109:50070</value>

</property>

<property>

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

  <value>qjournal://wang-108:8485;wang-109:8485;wang-208:8485/mycluster</value>

</property>

<property>

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

  <value>/var/sxt/hadoop/ha/jn</value>

</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_dsa</value>

</property>

<property>

  <name>dfs.ha.automatic-failover.enabled</name>

  <value>true</value>

</property>

3.配置core-site.xml:

<property>

<name>fs.defaultFS</name>

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

</property>

<property>

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

<value>/var/sxt/hadoop/ha</value>

</property>

<property>

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

  <value>wang-109:2181,wang-208:2181,wang-209:2181</value>

</property>

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环境搭建

      本文链接:https://www.haomeiwen.com/subject/kgiofctx.html