HadoopHA搭建(简版)
前言
刚搭建完集群把以前的问题都给解决了,十分激动,于是写下了第一篇博客,由于之前不理解集群的各节点分工及配置什么的,导致集群搭建过程中错误频出,后来看log日志文件并且重新配置了一遍才成功,报错了记得一定一定一定要看log文件
准备工作
zookeeper集群已经搭建并且配置完毕,bin/zkServer.sh status之后状态为follower或者leader,理解每个节点的任务和工作,集群共有四台机器:M1 M2 S1 S2
配置文件的修改
HadoopHA在zookeeper集群的基础上修改hdfs-site.xml和core-site.xml两个文件就可以了
- hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>M1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>M2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>M1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>M2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://S1:8485;S2:8485;M2:8485/mycluster</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.permission.enable</name>
<value>false</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</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>
</configuration>
- core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/HA/data/tmp/jn</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/HA/data/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>M1:2181,S1:2181,S2:2181</value>
</property>
</configuration>
启动集群
首先要启动zookeeper集群,在zookeeper中初始化HA的状态,进入zookeeper安装路径下执行命令:/bin/zkfc -formatZK
注意:namenode格式化一次后如果再次格式化,需删除/opt/HA/data/tmp
目录下的dfs文件,否则将会报错,再次格式化时需启动journalNode节点,同时关闭集群,以上操作完在主节点上启动集群:/opt/hadoop/hadoop-2.9.sbin/start-dfs.sh
然后jps就能够看到启动的进程。
HadoopHA官网配置链接: https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html