下载安装的hadoop安装包地址:https://archive.apache.org/dist/hadoop/common/
1.将下载的安装包解压;tar -zxvf hadoop-2.7.5.tar.gz
2.修改环境变量 vi /etc/profile
export HADOOP_HOME=/data/hadoop/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
修改之后记得要 source /etc/profile
3.修改配置文件 hadoop-evn.sh 添加java的环境变量 (文件路径:/data/hadoop/hadoop-2.7.5/etc/hadoop)
export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_PREFIX=/data/hadoop/hadoop-2.7.5
4.修改配置文件 mapred-env.sh 添加java的环境变量
5.修改配置文件 yarn-env.sh 添加java的环境变量
6.修改core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<!-- 名字自己起的 -->
<value>hdfs://lhn</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/APP/hadoop/data</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181,node04:2181,node05:2181</value>
</property>
</configuration>
7.修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>lhn</value>
</property>
<property>
<name>dfs.ha.namenodes.lhn</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.lhn.nn1</name>
<value>node01:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.lhn.nn1</name>
<value>node01:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.lhn.nn2</name>
<value>node02:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.lhn.nn2</name>
<value>node02:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode日志上的存放位置(一般和zookeeper部署在一起) -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node03:8485;node04:8485;node05:8485/lhn</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/modules/APP/hadoop/data/journal</value>
</property>
<!--客户端通过代理访问namenode,访问文件系统,HDFS 客户端与Active 节点通信的Java 类,使用其确定Active 节点是否活跃 -->
<property>
<name>dfs.client.failover.proxy.provider.lhn</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--是配置自动切换的方法,有多种使用方法,具体可以看官网,在文末会给地址,这里是远程登录杀死的方法 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 配置sshfence隔离机制超时时间,这个属性同上,如果你是用脚本的方法切换,这个应该是可以不配置的 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
<!-- 这个是开启自动故障转移,如果你没有自动故障转移,这个可以先不配 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>
8.修改mapred-site.xml.template名称为mapred-site.xml并修改
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01:19888</value>
</property>
</configuration>
9.配置 yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- Site specific YARN configuration properties -->
<!--启用resourcemanager ha-->
<!--是否开启RM ha,默认是开启的-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--声明两台resourcemanager的地址-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>rmcluster</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node02</value>
</property>
<!--指定zookeeper集群的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node01:2181,node02:2181,node03:2181,node04:2181,node05:2181</value>
</property>
<!--启用自动恢复,当任务进行一半,rm坏掉,就要启动自动恢复,默认是false-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--指定resourcemanager的状态信息存储在zookeeper集群,默认是存放在FileSystem里面。-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>
10.配置slaves
scp hadoop到其他四台机器,node02----node05
11.在node01的yarn-site.xml上添加:
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
</property>
</configuration>
12..在node02的yarn-site.xml上添加:
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm2</value>
</property>
</configuration>
13.启动zookeeper之后启动集群