一、部署集群节点
规划整个集群由3台虚拟机组成,部署规划如下:
服务器 | NameNode | DataNode | ResourceManager | NodeManager | JournalNode | Zookeeper | ZKFC |
---|---|---|---|---|---|---|---|
hadoop01 | √ | √ | √ | √ | √ | √ | √ |
hadoop02 | √ | √ | √ | √ | √ | √ | |
hadoop03 | √ | √ | √ | √ |
二、环境准备
首先搭配普通Hadoop集群,有三台虚拟机,分别为:hadoop01、hadoop02、hadoop03
三、配置Hadoop高可用集群
(以下文件都在解压后hadoop…文件下的etc/hadoop里)
1、修改core-site.xml文件在该文件配置HDFS端口,指定Hadoop临时目录和Zookeeper集群地址:
<configuration>
<!--指定HDFS的nameservice为ns1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!--指定Hadoop临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-2.7.4/tmp</value>
</property>
<!--指定Zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
</configuration>
2、修改hdfs-site.xml文件配置两台NameNode的端口地址和通信方式,并指定NameNode的元数据的存放位置,开启NameNode失败自动切换以及配置sshfence(通过ssh远程登录到前一个ActiveNameNode并将其结束进程)
(首先得创建/export/data/hadoop/name、/export/data/hadoop/data、/export/data/hadoop/journaldata这三个目录)
<configuration>
<!--设置副本个数-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--设置namenode.name目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/data/hadoop/name</value>
</property>
<!--设置namenode.data目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/data/hadoop/data</value>
</property>
<!--开启WebHDFS-->